我想使用Single-spa的文档中显示的方法:
部署和确保使用最新的javascript文件的另一个选择是使用重定向(HTTP状态代码302)。单spa导入Map使用javascript文件的未散列url。例如:dist/app.js。然后,当对该文件的请求到达服务器时,它被重定向到实际部署的文件,例如。dist/app.123abc.js,然后将其提供给客户端。通过这种方式,导入Map永远不必更新,并且可以单独部署微前端。
如果我不知道当前的“123 abc”哈希部分,我怎么在nginx中定义这样的重定向?我设置了一个重定向,但它只工作了一次,而哈希是正确的:location /spa/main.js { return 301 /spa/main.58321d0246d99a5aeaaa.js; }
1条答案
按热度按时间3phpmpom1#
我不确定这个答案是否会被Stack Overflow警察认为是一个“有效”的答案,但无论如何,它是:
而不是追求这种方法,在Nginx中有更好的方法。
Nginx默认计算所有静态内容的哈希值。然后使用此哈希创建ETag HTTP header。然后,浏览器使用ETag HTTP头来发现资源的缓存副本是否仍然是最新的。
问题:浏览器可能会花一些时间来检查服务器。基本上,只有当缓存的数据从Fresh状态变为Stale状态后,才会向服务器检查该高速缓存的有效性。我不认为你需要在这里所有这些细节,所以只要知道这一点:我们可以通过将
add_header Cache-Control "no-cache"
添加到位置配置中来强制浏览器每次检查Nginx服务器。我相信你能找到更多关于如何在互联网上完成此配置的信息,如果这个主题超出了你目前的Nginx知识。