每次我向我们的Web应用程序部署更新时,客户都会遇到浏览器未检测到index.html已发生更改的问题,并且由于.js文件的名称已更改,因此会出现错误。大概是因为他们的index.html仍然指向不再存在的旧javascript文件。
确保用户在系统更新时始终获得最新版本的正确方法是什么。
我们有一个HTML5 + AngularJS Web应用程序。它使用WebPack将供应商和应用程序javascript捆绑到两个js文件中。这些文件包含一个hashname,以确保它们在发布后不同。
其他一些信息
window.location.reload(true);
如果您需要用户在更新文件后立即加载您的站点时获取最新的index.html
,请使index.html
不可缓存。这意味着浏览器,CloudFlare和任何中间代理都不允许缓存它,并且一个文件将始终从您的规范服务器提供。
当然,这会对您和他们产生流量和延迟影响,但如果这确实是您的要求,我看不到任何其他选择。
这有很多旋转。它可能不是index.html
本身不可缓存,你可以插入另一个资源(一个小的JavaScript文件写出正确的script
标签),如果index.html
真的很大,重要的是缓存它,等等。但如果你需要改变立即获取,您将需要一个标识更改的不可缓存资源。