Использование эффективной политики кэширования для модульного приложения Angular Dart
Я хотел бы предоставить своему приложению 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-запросов, как описано в этом ответе, но я немного не хочу идти по этому пути.
Есть ли "дартс" способ добиться того, что я пытаюсь сделать?