SharePoint: This page is not using a valid page layout
Questo errore
Indica che le url memorizzate per i page layout hanno ancora il riferimento assoluto alla posizione precedente.
Per risolverlo si può usare questo script PowerShell per aggiornare automaticamente le url alla nuova posizione:
This page is not using a valid page layout. To correct the problem, edit page settings and select a valid page layout.
solitamente compare in SharePoint dopo un restore di un sito su un altra url. Indica che le url memorizzate per i page layout hanno ancora il riferimento assoluto alla posizione precedente.
Per risolverlo si può usare questo script PowerShell per aggiornare automaticamente le url alla nuova posizione:
PowerShell
web = Get-SPWeb -Identity "http://sharepoint.sgart.local/<site collection>/<webs>";
$rootUrl=$web.Site.RootWeb.url.tolower()
$spPubWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web);
$pages = $spPubWeb.PagesList;
foreach($item in $pages.Items)
{
$pubPage = [Microsoft.SharePoint.Publishing.PublishingPage]::GetPublishingPage($item)
$url = new-object Microsoft.SharePoint.SPFieldUrlValue($pubPage.ListItem[[Microsoft.SharePoint.Publishing.FieldId]::PageLayout].ToString())
if($url -ne $null)
{
$i=$url.url.IndexOf("/_catalogs/")
if($i -ge 0){
$url.url=$rootUrl+$url.url.substring($i)
$pubPage.Name
$pubPage.CheckOut()
$li=$pubPage.ListItem
$li[[Microsoft.SharePoint.Publishing.FieldId]::PageLayout] = $url
$li.Update()
$pubPage.ListItem.File.CheckIn("Fixed URL to page layout.", [Microsoft.SharePoint.SPCheckinType]::MajorCheckIn);
}
}
}