Question

I would like to do some minor SharePoint 2013 branding while keeping SP's Minimal Download Strategy (MDS) feature active. All I'm looking to do is to change a colour, add a logo, and hide some page elements on my master page, but I'm interested in keeping MDS active.

I do not want to enable the publishing infrastructure to achieve branding, since that doesn't play well with MDS, and I don't want to change the page behaviour of the many site collections I have in play (and it wreaks havoc with all sorts of other things, and it doesn't clean up after itself once it's been deactivated, etc etc.)

I've tried to download and edit a copy of seattle.master (renaming it upon upload, and setting it as the new default master via powershell) and that appears to work, except it doesn't play well with MDS either. For one, because of the url rewriting that MDS uses, the browser's back button seems to break if I do that, which tells me that MDS is actually costing more bandwidth by being active.

Here's my example. Let's say I'm at my home page:

I'm here:

siteurl/SitePages/Home.aspx

I want to go here:

siteurl/Shared%20Documents/Forms/AllItems.aspx

So I click that link. Here's what shows up in the address bar:

first url:

siteurl/_layouts/15/start.aspx#//Shared%20Documents/Forms/AllItems.aspx

then:

siteurl/_layouts/15/start.aspx#/Shared%20Documents/Forms/AllItems.aspx

finally:

siteurl/Shared%20Documents/Forms/AllItems.aspx

That more or less makes sense, since MDS takes a trip back to start.aspx to figure out what it needs to render. But The problem is with that second slash in the first url. Because when I click the back button, here's what shows up in the address bar:

first:

siteurl/_layouts/15/start.aspx#//Shared%20Documents/Forms/AllItems.aspx

then finally:

siteurl/_layouts/15/start.aspx#/Shared%20Documents/Forms/AllItems.aspx

Which leaves me at the same page I was on when I clicked back. I should be back at the home page. This all goes away when I disable MDS. It could be that I just need to choose between branding and MDS. But I can't find any documentation that supports that.

I should also mention that even using an exact copy of seattle.master is enough to cause the issue I'm seeing. So I do not think that my changes to the master page are causing this.

UPDATE:

I'm seeing this in the ULS logs (urls scrubbed): MDSLog: MDSFailover: Master page mismatch occurred in MDS: Context Page MP (currentMPToken) = ['|:|_CATALOGS|MASTERPAGE|GOVERNANCE.SEATTLE.MASTER:2.15.0.0.0.15.0.4753.1000.1.FALSE.:en-US:en-US:RW'], MP supplied by page in URL (originalMPToken) = ['|:|_CATALOGS|MASTERPAGE|CUSTOMSEATTLE.MASTER:2.15.0.0.0.15.0.4753.1000.1.FALSE.:en-US:en-US:RW'], Current Request URL = ['https://XXX.XXX.net/SitePages/About Us.aspx?AjaxDelta=1']

That seems to indicate I'm using two different master pages, but I don't see how. I'm setting the master page to customseattle.master via

$site = Get-SPSite https://XXX.XXX.net
$site | Get-SPWeb -limit all | ForEach-Object { $_.MasterUrl = "/_catalogs/masterpage/customseattle.master";$_.Update() }
Was it helpful?

Solution

When you update the masterpage using PowerShell, set both the web.MasterUrl and web.CustomMasterUrl.

If you are just trying to change the logo, colors and hide some elements, does using the design manager and a custom CSS file give you enough options, rather than modifying the master page?

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top