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