我能够成功部署自定义页面布局并在母版库中查看。我也可以从这个布局手动创建页面。
我想要做的是在我的网站定义中有一个页面,基于自定义布局自动部署包。
如何部署页面并告诉该页面使用哪种布局?
答案 0 :(得分:5)
使用模块,您可以从PageLayout
我猜您的PageLayouts PageName为Home.aspx
,而实例名称应为Home.aspx
希望您的Pagelayouts上传到_catalogs/masterpage
目录。
<Module Name="PagesLayouts"
Url="_catalogs/masterpage"
Path=""
RootWebOnly="False">
<File Url="YourModuleName/Home.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE"></File>
</Module>
比:
<Module Name="CustomPages" Url="Pages" Path="" RootWebOnly="FALSE">
<File Name="Home.aspx" Url="Home.aspx" Type="GhostableInLibrary" Path="Home.aspx" IgnoreIfAlreadyExists="TRUE">
<Property Name="Title" Value="Home" />
<Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/Home.aspx" />
<Property Name="ContentType" Value="Page" />
</File>
</Module>
见这里:http://kamilmka.wordpress.com/2011/03/30/create-sharepoint-page-instance-from-a-feature/
我刚刚创建了正确理解的演示项目。你可以看到我的解决方案结构。 刚添加一个模块名称是PageLayouts并放置一个PageLayout页面。
我使用的模块的完整Element.xml文件:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="PageLayouts" Url="_catalogs/masterpage" Path="" RootWebOnly="TRUE">
<File Path="PageLayouts\CustomPageLayouts.aspx" Url="CustomPageLayouts.aspx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE">
<Property Name="Title" Value="Custom General Page" />
<Property Name="MasterPageDescription" Value="Custom General page layout" />
<Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
<Property Name="PublishingPreviewImage" Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/WelcomeSplash.png" />
<Property Name="PublishingAssociatedContentType" Value=";#$Resources:cmscore,contenttype_welcomepage_name;;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390064DEA0F50FC8C147B0B6EA0636C4A7D4;#" />
</File>
</Module>
<!--Create Page instance from Page layouts of CustomPageLayouts.aspx-->
<Module Name="CustomPages" Url="Pages" Path="" RootWebOnly="FALSE">
<File Name="Home.aspx" Url="Home.aspx" Type="GhostableInLibrary" Path="PageLayouts\CustomPageLayouts.aspx" IgnoreIfAlreadyExists="TRUE">
<Property Name="Title" Value="Home" />
<Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/CustomPageLayouts.aspx"/>
<Property Name="ContentType" Value="Page" />
</File>
</Module>
希望它有所帮助!!