问题
I have this Blazor SPA I have published to IIS on a webhotel. My problem is that Chrome is somehow caching my Blazor assembly so no matter how many times I redeploy I still get the old dll. I can start up a new clean Chrome with chrome --disable-application-cache --incognito and that does indeed get the fresh dll but how do I fix this properly? Kind regards
回答1:
The following helps IF you don't want PWA features.
I started my project with PWA (just in case I wanted it later) but it turned out to cause this problem even when simply browsing. Tried adding comments or versioning to service-worker.published.js but that didn't help. I'm using Blazor version 3.2.1.
With PWA. When checking the cache in the browser I do see the latest service-worker.published.js appearing, and a new offline cache does get downloaded. But the browser keeps using the older ones for a reason beyond my understanding.
To remove PWA:
- Delete the following files from wwwroot:
/wwwroot/manifest.json /wwwroot/service-worker.js /wwwroot/service-worker.published.js
- Delete this line from /wwwroot/index.html
<script>navigator.serviceWorker.register('service-worker.js');</script>
- Delete those lines from your csproj file
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest> <ServiceWorker Include="wwwroot\service-worker.js" PublishedContent="wwwroot\service-worker.published.js" />
回答2:
Exactly like you do it. But of cause there are also other ways.
- Press F12 in the Browser -> Select Network -> Check Disable cache
- Press F12 in the Browser -> In developer mode R Click on reload -> Select hard reload
- Press ctrl+shift+R to hard reload
- Your way but create a shortcut for it.
- Disable cache with code (not recommended and i would have to lookup how)
回答3:
Enable it as a PWA
Then you can control the cache with a property in your project. The client will cache your code until you tell it to update - the user will be told there is an update and should reload the page - at this point it will update.
回答4:
Thank you both.
I will definitely look into the PWA stuff but also nice to know the hacks from mr Beynio.
Kind regards Martin
来源:https://stackoverflow.com/questions/60613457/blazor-chrome-caching-issues