0

Ok, I have never seen anything like this before and hoping someone else has. I just finished patching our Dev and Test servers to Nov2017CU (SharePoint 2013). Since then, any solutions that are using JS injection from Site Assets are not updating. I'll make a change to the file, the library reflects that I made the change, but when I attempt to load the page accessing the js file, the changes are not reflected. Hard refreshes and full cache cleans are not affecting it. If I close and reopen my editor (VSCode) my changes are gone. When I look at the version history, the current version doesn't have my changes, but the previous version does. If I try to revert to that version, it doesn't take (still shows the previous version of the file).

Here's where it becomes extra weird. I have deleted the entire file from the library. Reset IIS (heck, I even rebooted the server at one time). It somehow still loads the file. The file is no longer in the library, but the server is still serving it up to the browser. I have confirmed it is not getting it from another location as the Dev tools are showing the file is located in the Asset Library the file was deleted from. Even users who have never accessed the site before are still getting that file in their browser.

This isn't limited to a single site either. I have other developers in different sub sites (same site collection) that are having the same issues. Anyone seen this before?

  • 2
    Is BLOB Cache enabled on the Web Application? – Trevor Seward Jan 18 '18 at 16:29
  • Hey Trevor, as a matter of fact it is. Did some digging and the js file is sitting in the BlobCache folder. Any ideas, why the blob cache isn't being updated? I can obviously flush it, but would like to know why this is occurring. – David Drever Jan 18 '18 at 16:37
  • No immediate thoughts as to why this is occurring. I've seen the behavior on and off before across 2010 - 2016. Flushing the BC is the route to go. – Trevor Seward Jan 18 '18 at 16:41
  • So my patch was probably just a weird coincidence then. Sigh... Sometimes I wonder why I SharePoint hates me so much – David Drever Jan 18 '18 at 16:42
4

Short and sweet: Flush the BLOB Cache.

2

Due to somewhat over-zealous caching, when referencing JavaScript files from SharePoint, add a dummy querystring value to your URL, like ?rev=20180118. When you update your scripts, update the HTML that references the scripts and increment your rev tag to something new, so the caching won't affect it.

  • This method is great for refreshing a browser cache of the file, but all it does is tell the client to get the latest version from SharePoint. Same thing as a Ctrl + F5. However, SharePoint thought it was serving up the latest version so I am not totally convinced it would have worked in this particular case and I never tested it before flushing the cache – David Drever Jan 18 '18 at 17:57
  • 1
    SharePoint sees a different URL, and returns the updated file instead of what was in cache. It's not the same as Ctrl+F5. We ran into an issue recently where Ctrl+F5 wasn't pulling updated scripts from a SP site in SP Online (where we can't flush the cache), and this was the solution. Luckily whatever was causing the aggressive caching was reversed in SPO, so we're back to Ctrl+F5 when developing, and we increment ?rev= tags when deploying updates to users. – Chris Romp Jan 18 '18 at 17:59
  • Just so you know, I created a quick blog on this, but I gave kudos to you on helping with this answer. prairiedeveloper.com/2018/01/… – David Drever Jan 18 '18 at 18:16
  • I have never seen this work when BLOB caching is enabled. Is it just me? – iOnline247 Jan 18 '18 at 21:15
0

A quick fix is to open the file in the browser and do ctrl + r. You will see the file update immediately.

  • This is not always true. Blob caching prevents the new file from appearing until it is flushed. – iOnline247 Jan 18 '18 at 21:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.