我有一个PWA应用程序,其中我正在使用Webpack渲染js文件:
{% render_bundle 'app' 'js' %}
在移动Chrome中启动PWA应用后,该文件未更新。很可能Chrome使用缓存的版本。我尝试删除PWA应用并重新安装它,但没有帮助。之后,我手动清除了移动Chrome缓存,并刷新了文件,然而,大多数用户不会这样做,所以我需要另一个解决方案,它不需要任何终端用户的操作。类似问题的回答建议给js文件添加参数或版本号。请参考此链接获取更多信息。
<script type="text/javascript" src="myfile.js?REVISION"></script>
然而,如何使用Webpack实现这一点尚不清楚?
另一个流行的答案解释了我可以使用hash或chunkhash来生成文件名:
output: {
path: '/',
filename: '[hash].js',
chunkFilename: '[chunkhash].js',
},
这个解决方案对我不适用,因为每次文件更改时我无法更改文件名。文件名应保持不变,因为我使用django的collectfast应用程序。它检查静态文件的md5sum,并仅更新已更改的文件。
静态js文件的名称应保持不变。同时,我需要一种机制来强制移动Chrome更新更改的文件。
chunkhash
在构建过程中是否会更改。我不熟悉这些配置,但我的印象是chunkhash
不应在没有代码更改的情况下更改。如果它在没有代码更改的情况下更改,那可能表示另一个问题。请将这些观察结果添加到您的问题中。更多的配置信息也可能有所帮助。 - try-catch-finally