我一直在研究这个问题,这个问题非常简单:
现代浏览器(chrome / FF)是缓存内容,html页面等。
当您发布新版本时,angular GET这些模板。但是,由于浏览器提供这些页面的缓存版本而不是新的更新版本。
我已经阅读了关于如何实现这一目标的2000篇文章。 没有“meta”标签对我有用..(例如:Using <meta> tags to turn off caching in all browsers?) 唯一有效的方法是通过添加一些参数值http://bla.com?random=39399339来手动管理文件的版本。 然而,如果有时只需要“明确的缓存”(主要是版本之间),这真的很烦人且难以维护。
浏览器是否有可能无法提供简单,受控的方式来手动“清除缓存”。无论是在服务器还是客户端方式?
P.S。 Angular模板使管理变得更加困难。
答案 0 :(得分:0)
这是一个有很多答案的问题,这取决于你的服务器等......
答案 1 :(得分:0)
我正在使用拦截器。如果请求包含精确的url块(模板路径)我设置标题“Cache-Control”:“no-cache,must-revalidate”
$httpProvider.interceptors.push(function($q,ngToast) {
return {
request: function(config){
if(config.url.includes('some_url_to_your_template')){
Object.assign(config.headers,{"Cache-Control": "no-cache, must-revalidate"});
}
return config;
}
}
})