Déployer la page maître sur le sous-site à l'aide du module
-
10-12-2019 - |
Question
J'ai créé un centre de recherche et je souhaite lui appliquer une page maître personnalisée.Je souhaite déployer la page maître à l'aide d'un module et de la fonctionnalité de ma solution.J'ai créé un module et le Elements.xml ressemble à
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="SearchcenterModule" Url="Suche/_catalogs/masterpage">
<File Path="SearchcenterModule\minimal.master" Url="minimal.master" />
</Module>
</Elements>
Lors de l'activation de ma fonctionnalité dans les fonctionnalités de la collection du site, j'obtiens une erreur
(null) "Suche" introuvable.
...
où "Suche" est le nom de mon sous-site, c'est-à-dire: http://mysharepoint/Suche
Bien sûr, je peux ajouter le fichier manuellement mais il doit y avoir un moyen de le déployer à l'aide de l'activation des fonctionnalités.
Merci pour votre aide.
La solution
Je ne connais pas la solution, mais avez-vous essayé de définir la fonction de fonctionnalité à Web, d'utiliser la définition de module par défaut et l'activation de ce module sur la supporie de la Surette?
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="MasterPageModule" Url="_catalogs/masterpage">
<File Url="MasterPage.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="False" />
</Module>
</Elements>
Si cela ne fonctionne pas, avez-vous essayé d'utiliser ~ jeton de site?
<Module Name="SearchcenterModule" Url="~Site/_catalogs/masterpage">
Autres conseils
Les pages maîtres et la mise en page ne peuvent être déployées que sur SiteCollections, et non sur des sites/sous-sites.
Votre fonctionnalité doit donc être limitée au site.Vous pouvez toujours dans votre FeatureReceiver définir la page maître sur un domaine spécifique. SPWeb
.
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="SearchcenterModule" Url="_catalogs/masterpage">
<File Url="minimal.master" IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary" />
</Module>
</Elements>
IgnoreIfAlreadyExists
veille à l'écraser lors du déploiement afin que de nouvelles modifications apparaissent. Type="GhostableInLibrary"
s'assure que la nouvelle page maître/mise en page est visible dans la galerie Masterpage & Pagelayouts.