未在AngularJS

时间:2016-10-03 23:33:42

标签: javascript html angularjs caching

我正在开发一个AngularJS项目。每次我更改代码(html / css)并刷新页面时,更改都没有反映出来。我已经在路由中使用了cache:false。顺便说一下,我使用ui-routeroclazyload使用动态路线。为了获得更改,我不得不使用chrome(F12)调用开发人员工具,使用disable cache选项然后进行刷新。我有什么遗漏,比如版本化HTML吗?

修改

这是我的路线:

$stateProvider
    .state('layout', {
        url: '/:area',
        cache: false,
        templateUrl: function ($stateParams) {
            return 'app/areas/' + $stateParams.area + '/_layout/index.html'
        },
        resolve: {
            load: function ($ocLazyLoad, $stateParams) {
                return $ocLazyLoad.load({
                    name: 'layout',
                    files: ['app/areas/' + $stateParams.area + '/_layout/controller.js']
                });
            }
        }
    })
    .state('layout.inner', {
        url: '/:action',
        cache: false,
        templateUrl: function ($stateParams) {
            return 'app/areas/' + $stateParams.area + '/' + $stateParams.action + '/index.html'
        },
        parent: 'layout',
        resolve: {
            load: function ($ocLazyLoad, $stateParams) {
                return $ocLazyLoad.load({
                    name: 'layout.inner',
                    files: ['app/areas/' + $stateParams.area + '/' + $stateParams.action + '/controller.js',
                    ]
                });
            }
        }
    });

1 个答案:

答案 0 :(得分:0)

您无法获得最新更改,因为您的浏览器正在缓存旧的更改。

你说

要获得更改,我必须使用chrome(F12)调用开发人员工具,使用禁用缓存选项,然后执行刷新

当开发工具打开时,

禁用缓存选项 活动。一旦你关闭开发工具,浏览器就会再次开始缓存它们。

因此,您必须手动删除缓存 Ctrl + Shift + R 或右键单击刷新按钮并选择空缓存和硬重新加载(应该打开开发工具)。

有关 chrome 的更简单解决方案,您可以使用Cache Killer扩展名。启用后,每次刷新页面时都会删除所有缓存。