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