对模块化Angular Dart应用程序使用有效的缓存策略

时间:2019-04-09 19:45:37

标签: dart angular-dart dart2js dart-build

我想用efficient cache policy服务我的Angular Dart应用程序。理想情况下,我想为所有经过编译的jscss资产提供较长的到期时间,并通过将版本哈希附加到请求中来处理代码库中的更改(以及随后要求的缓存无效)。例如我的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.jsmain.dart.js_2.part.js的形式动态请求-我看不到如何向这些请求附加哈希。

我当时正在考虑为dart2js指定一个包含哈希值的输出文件名,但是build_web_compiler包会覆盖它,并且无论我指定了什么输出名,都将输出main.dart.js

我能想到的唯一其他解决方法是注册JavaScript Service Worker并拦截所有http请求,如in this answer所述,但我有点不愿意走这条路。

是否有一种“达特斯”式的方法来实现我想要做的事情?

0 个答案:

没有答案