【发布时间】:2021-03-10 20:58:32
【问题描述】:
我已将 Angular 7 应用程序部署到 Azure 应用服务。每次新部署后,即使启动新浏览器,我也必须手动刷新或硬刷新浏览器页面才能看到新的更改。
我可以在我的部署中看到,index.html 文件确实每次都嵌入了新的哈希文件名。
<script type="text/javascript" src="runtime.5959ec9531e22bc6ae82.js"></script>
<script type="text/javascript" src="es2015-polyfills.d9df4d9cef7e9c40c764.js" nomodule></script>
<script type="text/javascript" src="polyfills.eb0596823492af2b4693.js"></script>
<script type="text/javascript" src="main.1eb70d066995e0724818.js"></script>
为什么应用程序没有自动重新加载 index.html?如何解决这个问题?
【问题讨论】:
-
也许缓存控制会有所帮助。见stackoverflow.com/questions/49547/…
-
所以通常你的 Index.html 被缓存在服务器端的某个地方,例如在负载均衡器或其他地方,如果你得到旧的 index.html 哈希数字不正确。
-
您是否尝试在构建中使用输出哈希标志? ng build --output-hashing=all
-
我可以从服务器站点上部署的文件中看到,哈希数已更改。这是预期的正确行为,因为 outputHashing 在 angular.json 文件中设置为 all。我只是不明白,因为 index.html 肯定改变了,为什么浏览器不重新加载文件。
-
你试过控制浏览器的缓存行为吗?
标签: javascript angular