【问题标题】:html avoid caching with angularjs stateprovider & gulphtml 避免使用 angularjs stateprovider 和 gulp 进行缓存
【发布时间】:2016-05-18 13:28:06
【问题描述】:

我试图避免缓存我的 Html 文件。 我尝试过使用 rev 和 rev-replace。 结果是只更改了文件名,但 stateprovider 中的文件引用没有更改,因此导致 files not found 错误。

这是我的 config.js 的一部分,它有 stateProvider:

$stateProvider .state('landingPage', { 网址:“/家”, templateUrl: "views/landingPage/landingPage.html", })

这是我的 gulp 文件的一部分:

 gulp.task('copyHtml', ['copyAll','useRef'], function () {
return gulp.src('app/views/**/*.html')
.pipe(htmlmin({ collapseWhitespace: true, removeComments: true }))
.pipe(rev())
.pipe(revReplace())
.pipe(gulp.dest('dist/views'));
});

如何更改 config.js 中的文件引用?

内容不仅在移动设备上刷新(Android 上的 Chrome)。 我尝试在 stateProvider 中手动更改 html 文件的名称,但它也不起作用。

如何避免浏览器缓存???

谢谢

【问题讨论】:

    标签: html angularjs gulp browser-cache gulp-rev


    【解决方案1】:

    浏览器将缓存,直到您更改模板的 URI。

    一种解决方案是存储一个值,该值在项目的每次构建中都会发生变化 (gulp)。

    例如:

    var build_id = $val_to_generate$;
    

    现在您在控制器中定义了所用模板的 url:

    $scope.urls = {
      template1: "http://adazdazkdaz/template1.html?v=" + build_id
    }
    

    现在在与控制器关联的模板中,使用:

     <div ng-include="urls.template1"></div>
    

    页面将不再被缓存。

    你也可以对 js 文件这样做

    【讨论】:

    • 但是我如何用 gulp 做到这一点?如何将 build_id 添加到配置文件?我已经成功地为 js & css 但不是 html。
    • 就我自己而言,我不使用 gulp 执行所有构建规则:/ 我在 php 中有一个脚本,其唯一目标是生成该文件。它生成一个名为“build_id”的文件。每次调用时,它都会打开文件,获取值,然后将值加 1,然后保存文件。之后,生成一个名为“globals.tmp.js”的文件,例如,您可以在 concat 规则的 gulpfile 中使用该文件。
    • 有人有解决这个问题的方法吗?
    猜你喜欢
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 2014-03-25
    • 2018-03-28
    • 1970-01-01
    • 2019-03-13
    相关资源
    最近更新 更多