我在服务器场中使用捆绑和缩小,其中存在旧服务器和新服务器的交叉时段。
我遇到的问题是旧服务器正在缓存新的bundle cache buster URL的内容。
例如,使用新捆绑包网址缓存新 HTML:
<script src="/bundle.css?v=RBgbF6A6cUEuJSPaiaHhywGqT7eH1aP8JvAYFgKh"></script>
然后向旧服务器发出请求,该服务器尚未使用新的CSS代码进行更新,然后进行缓存。
对新捆绑包网址的任何后续调用都将返回旧代码。
因此有没有办法检查捆绑包的内容是否与哈希缓存破坏者匹配?如果它不会抛出404例如。
当请求回到捆绑包的旧服务器时,使用上面的示例,它将检查捆绑包的内容,生成内容哈希并将其与查询字符串进行比较。
在这种情况下,cache-buster不会与实际内容哈希匹配,并且会返回404.
最终,用户会使用捆绑请求点击新服务器,并且会缓存正确的内容。
答案 0 :(得分:3)
我们很快就会遇到同样的问题,但我们一直只坚持使用2个更新域(将服务器分成两半,以便不超过一个版本运行一次)。
据我所知,有4种可能的选择:
这是您实际看到的问题,还是假设?除非您的网站流量非常高,并且您的部署需要几分钟时间,否则您不会看到它。你会想要回复404,因为有时错误的样式表比没有样式表更好。