html избегайте кеширования с помощью angularjs stateprovider и gulp

Я пытаюсь избежать кэширования моих файлов Html. Я пытался работать с rev & rev-replace. в результате изменяются только имена файлов, но ссылки на файлы в провайдере состояний не изменяются, поэтому в результате возникает ошибка «файлы не найдены».

это часть моего config.js, в котором есть stateProvider:

$stateProvider .state('landingPage', { url: "/home", templateUrl: "views/landingPage/landingPage.html", })

это часть моего файла глотка:

 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?

Контент не обновляется только на мобильных устройствах (хром на андроиде). Я пытался изменить имена файлов html вручную и в stateProvider, но это тоже не работает.

Как избежать кеширования браузера???

спасибо


person stackoverflowNewB    schedule 18.05.2016    source источник


Ответы (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.

person Pierre Emmanuel Lallemant    schedule 18.05.2016
comment
но как мне это сделать с глотком? как добавить build_id в файл конфигурации? мне удалось сделать это для js и css, но не для html. - person stackoverflowNewB; 18.05.2016
comment
в моем случае я не выполняю все свои правила сборки с помощью gulp: / У меня есть скрипт на php, единственной целью которого является создание этого файла. Он генерирует файл с именем build_id. При каждом вызове он открывает файл, берет значение и добавляет к нему 1, а затем сохраняет файл. После этого создайте файл с именем, например, «globals.tmp.js», который вы можете использовать в gulpfile в правиле concat. - person Pierre Emmanuel Lallemant; 18.05.2016
comment
у кого-нибудь есть решение этой проблемы глотком? - person stackoverflowNewB; 19.05.2016