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

Есть ли "дартс" способ добиться того, что я пытаюсь сделать?

0 ответов

Другие вопросы по тегам