Я бы хотел обслуживать свое приложение Angular Dart с эффективной политикой кэширования .В идеале я хотел бы обслуживать все скомпилированные ресурсы js
и css
с длительным сроком действия и обрабатывать изменения в нашей кодовой базе (и впоследствии требовать аннулирования кэша), добавляя к запросам хеш-версию.Например, эта часть моего файла index.html
<link rel="stylesheet" href="/css/style.css" media="all"/>
<script defer src="/main.dart.js"></script>
становится чем-то вроде
<link rel="stylesheet" href="/css/style.css?_=ae0d8ceba" media="all"/>
<script defer src="/main.dart.js?_=ae0d8ceba"></script>
Мне удалось сделать это с помощью пользовательского Builder
, и он работает нормально,но мое приложение разбито на несколько модулей, большинство из которых загружаются лениво при необходимости.Файлы деталей запрашиваются динамически как main.dart.js_1.part.js
, main.dart.js_2.part.js
- и я не понимаю, как добавить хеш к этому запросу.
Я думал об указании имени выходного файла для dart2js
он содержит значение хеша, но пакет build_web_compiler
переопределяет его и будет выводить main.dart.js
, независимо от того, какое выходное имя я указал.
Единственный другой обходной путь, о котором я могу подумать, - это регистрация работника службы JavaScript иперехватывать все http-запросы, как описано в этом ответе , но я немного неохотно иду по этому пути.
Есть ли "дартси" способ добиться того, что я пытаюсьделать?