当我部署 Angular 应用程序的新版本时,旧版本仍然存在。只是,修复的解决方法是对浏览器进行“硬”刷新。(这不是一个可接受的解决方案)。
我在我的项目中使用 Yeoman(生成器角度)。我查看了它,Gruntfile.js发现它执行了一个在构建期间重命名所有内容的任务,包括图像、js、css。只有没有被重命名的文件是index.html. 我该怎么做才能index.html让浏览器加载此文件而不是使用缓存版本?
Cache您可以修改服务器配置,通过设置响应头来告诉浏览器不要缓存Expires。我给你举一个 Nginx 的例子:
location / {
index index.html;
expires -1;
add_header Pragma "no-cache";
add_header Cache-Control "no-store";
}
Run Code Online (Sandbox Code Playgroud)
在这里,我们使用标头进行响应index.html,这将阻止浏览器缓存index.html,并且浏览器将始终获得新的副本。现在,Grunt 已经根据内容重命名了 JS 和 CSS 文件,然后它会自动刷新。
当然,上面的例子是为了Nginx配置。您可以为您的网络服务器实现它。