每当我更改angularjs网站中的代码时,它们都会生效,直到用户点击刷新按钮。即使我退出到一个非角度的页面,然后重新登录它是相同的旧代码,直到我单击刷新按钮。因此,如果有人登录,则与上次登录时相同,无论更改如何,我显然不能指望他们每次登录时都点击刷新。
所以我的问题是如何强制刷新代码。我不想使用window.reload或类似的东西,如果有一个特殊的角度方式来实现这一点。我已经尝试清除模板缓存但它不起作用。这就是我试过的:
.run(function($rootScope, $templateCache) {
$templateCache.removeAll();
$rootScope.$on('$routeChangeStart', function(event, next, current) {
if (typeof(current) !== 'undefined'){
$templateCache.remove(current.templateUrl);
}
});
})
答案 0 :(得分:1)
我的问题是浏览器缓存js文件。我不认为那会是问题因为在使用angularjs之前我从未遇到过这个问题。所以为了解决这个问题,我发现了这个问题:How to force browser to reload cached CSS/JS files?并稍微修改了一下,所以我没有必要使用所有的url重写。
我添加了php函数
function get_version($file){
return filemtime($_SERVER['DOCUMENT_ROOT'] . $file);
}
然后我链接我使用的脚本:
<script src="/path/to/script.js?<?php echo get_version('/path/to/script.js');?>"></script>