Я пытаюсь кэшировать html-файлы моего приложения angularjs, следуя этому предложению: https://gist.github.com/ProLoser/6181026.
Я добавляю динамический ключ кеша, такой как ?v=123456790
, ко всем html-файлам (кроме тех, которые находятся в каталоге шаблонов, используемом angular ui bootstrap).
Для частичек в их собственных файлах, т. Е. app/views/customer/customer-history.html
это работает отлично. Тем не менее, для частичных в форме сценария, например, <script type='text/ng-template' id='customer-history'>
шаблон не найден и сделан запрос к серверу, в результате чего 404.
например. localhost:8080/customer-history/?v=1234567890
Я вижу, что рассматриваемые шаблоны находятся в $ templateCache. Те, которые используют ng-template, это просто имя, то есть customer-history
, тогда как отдельные файлы находятся по пути app/views/customer/customer-history.html
, как вы могли ожидать.
Это большое приложение, поэтому просмотр и перенос их всех в свои файлы и т. Д. Не будет тривиальным. Я искал везде, и я ничего не поднимаю, поэтому я предполагаю, что это что-то простое с тем, как реализован templateCache.
Я использую плагин gulp-templatecache во время процесса сборки, но документы довольно ограничены, и я не думаю, что проблема заключается в этом.
Мое текущее решение состоит в том, чтобы просто пока пропустить ошибочные шаблоны в функции, добавляющей номер версии, декорировав функцию inCache
на фабрике $ templateCache и используя ее во время проверки для добавления cacheKey. Но я чувствую, что это своего рода упущение.