Использование эффективной политики кэширования для модульного приложения Angular Dart - PullRequest
0 голосов
/ 09 апреля 2019

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

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

...