在单击刷新/重新加载之前,代码更改不会生效

时间:2014-10-27 13:25:27

标签: angularjs

每当我更改angularjs网站中的代码时,它们都会生效,直到用户点击刷新按钮。即使我退出到一个非角度的页面,然后重新登录它是相同的旧代码,直到我单击刷新按钮。因此,如果有人登录,则与上次登录时相同,无论更改如何,我显然不能指望他们每次登录时都点击刷新。

所以我的问题是如何强制刷新代码。我不想使用window.reload或类似的东西,如果有一个特殊的角度方式来实现这一点。我已经尝试清除模板缓存但它不起作用。这就是我试过的:

.run(function($rootScope, $templateCache) {
    $templateCache.removeAll();
    $rootScope.$on('$routeChangeStart', function(event, next, current) {
        if (typeof(current) !== 'undefined'){
            $templateCache.remove(current.templateUrl);
        }
    });
})

1 个答案:

答案 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>