moss开发中,很多时候我们是在自己的机子上开发一个单独的模块然后部署到服务器网站上,有时候也是在自己的机子上开发测试,然后最终部署到客户的服务器上,因为直接的网站迁移不一定行得通,因此我们会打上很多各种各样的模板,这里说几个我在打模板以及部署过程中遇到的几个问题。
1、母版页。如果你自己的网站用了自定义的母版页,那么在你此用模板在其他网站集上创建网站的时候如果此网站集中没有上传相应的母版页,moss会给你提一个“未找到文件”的错误
2、页面布局。开发中我们也肯定会使用各种各样的自己定义的页面布局来适应自己有着特定风格和特定功能的页面,但我在使用这些页面布局创建页面的时候碰到了一个很恶心的问题,那就是页面是用绝对路径挂的URL而不是相对URL,这样在别的网站集上用此网站模板创建网站的时候里面的页面显然也就会因为找不到页面布局而坏掉了,而第一次创建网站时的default页就没出现这种问题,因为它使用的是相对URL,也就是:
<mso:PublishingPageLayout msdt:dt="string">/_catalogs/masterpage/Layout.aspx, 页面布局</mso:PublishingPageLayout>
而不是
<mso:PublishingPageLayout msdt:dt="string">http://moss:8080/_catalogs/masterpage/Layout.aspx, 页面布局</mso:PublishingPageLayout>
具体的原因我没弄清楚,但在比较了这两种页面以后就可以用这个取巧的方法解决这个问题了,就是直接去把错误页面下载下来修改后再上传覆盖原来的页面。
这里还有一个问题:我们在创建网站集的时候有个填URL的部分,比如webapp的url是http://moss:8080/,创建网站集的时候可以选择创建的网站集url为http://moss:8080/,也可以创建为http://moss:8080/sites/mossweb这样的形式,如果是第二种URL,那么上面的修改就不管用了,default页面也会一样出错,因为它们的页面布局URL地址为http://moss:8080/_catelog/xxxxxxxx,这显然是错误的.....
这个问题我暂时只能用创建成第一种URL的方式来解决,如果有正规的方法请告知
3、有一些网站及一些列表无法创建模板,就是在网站设置或者列表设置中没有“创建为网站模板”或者"创建为列表模板"的选项,如果你觉得重新创建一遍实在太麻烦的话可以在网站URL后面加"/_layouts/savetmpl.aspx"的地址来创建网站模板(http://moss:8080/FirstWeb/_layouts/savetmpl.aspx),同样列表模板可以先进到一个可以创建为模板的列表中查看相应的url方式实现。另外在一些列表或者文档库中有一些Field是不能修改的,比如文档库的“名称”,这种情况同样可以用取URL的方法解决。
不过我想微软既然不想让我们这样创建网站或者列表模板,不想让我们修改某些Field的信息应该是有他们自己的道理的,可能修改这些东西会带来一些错误或者隐患