Cur*_*urt 16 asp.net asp.net-mvc caching bundling-and-minification
我在服务器场中使用捆绑和缩小,其中存在旧服务器和新服务器的交叉时段.
我遇到的问题是旧服务器正在缓存新的bundle cache buster URL的内容.
例如,使用新的捆绑包URL 缓存新的 HTML :
<script src="/bundle.css?v=RBgbF6A6cUEuJSPaiaHhywGqT7eH1aP8JvAYFgKh"></script>
Run Code Online (Sandbox Code Playgroud)
然后,它向旧服务器发出请求,该服务器尚未使用新的CSS代码进行更新,然后缓存.
然后,对新捆绑URL的任何后续调用都将返回旧代码.
因此有没有办法检查捆绑包的内容是否与散列缓存破坏者匹配?如果它不抛出404例如.
使用上面的示例,当请求返回到旧服务器的捆绑包时,它将检查捆绑包的内容,生成内容哈希并将其与查询字符串进行比较.
在这种情况下,缓存 - 破坏者将不匹配实际内容散列,并且将返回404.
最终,用户将使用捆绑请求命中新服务器,并且将缓存正确的内容.
我们自己很快就会遇到同样的问题,但我们一直坚持只使用 2 个更新域(将服务器一分为二,以便一次运行的版本不超过一个)。
据我所知,有 4 种可能的选择:
这是您实际遇到的问题,还是假设的问题?除非您的网站流量非常高并且部署需要花费几分钟的时间,否则您不太可能看到这种情况。您需要警惕返回 404,因为有时错误的样式表比没有样式表好。
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |