У меня есть Angular, который использует шаблоны через директивы. С одним из шаблонов у меня была ошибка. После внесения изменений и обновления моего браузера я заметил, что он не использовал файл, в котором я исправил ошибку. Затем я узнал о кэшировании шаблонов. Отличная функция, но как очистить кеш для этого обновленного шаблона?
Примечание. Я не использую угловые маршруты. Просто доступ к шаблонам через директиву.
Как расширение добавления URL-адресов шаблонов с номером, вы можете вместо этого перехватить запрос (все) и добавить число (версия, выпуск, дата и т.д.). Что-то вроде этого:
angular.module('my-app', []).config(function($httpProvider) {
$httpProvider.interceptors.push(function($window) {
return {
'request': function(config) {
// just yours (other libs, ie pagination might conflict with
// their own insertions)
if (!/^\/path-to-your-templates\//.test(config.url)) {
return config;
}
// pull a # from wherever you like, maybe the window - set by
// your backend layout engine?
if ($window.version) {
if (!config.params) {
config.params = {};
}
if (!config.params.v) {
config.params.v = $window.version;
}
}
return config;
}
};
});
});
Вы использовали глоток или грунт?
Я лично использую template-cache, то, что он делает, он собирает все html partials/templates и помещает их в файл js.
pros: * все шаблоны загружаются сразу в один файл js.
cons: * каждый раз, когда вы меняете свои html файлы. Вы должны восстановить свой шаблон-кеш. Вы можете использовать gulp для просмотра ваших html файлов, и каждый раз, когда вы меняете что-то, он автоматически восстанавливает шаблон-кеш для вас :)
подвести итоги, получить интерес с помощью gulp-watch
и gulp-angular-templatecache
чтобы решить вашу проблему.