在我建造的网站上,我们正在使用内置的捆绑和缩小功能。
我们使用@Scripts.Render
@Scripts.Render("~/bundles/scripts")
它会生成如下链接:
bundles/scripts?v=3-DUUAAegZl4yp1O4V0VL0GnJ0U6gT3De8yKb41lfGs1
这里我认为哈希:
v=3-DUUAAegZl4yp1O4V0VL0GnJ0U6gT3De8yKb41lfGs1
如果我们对包含的脚本进行了更改,那么会很聪明并且会发生变化,但事实并非如此。
现在,当我们尝试实现自定义cdn以进行捆绑时,它在更新时失败,因为哈希似乎永远不会改变。
当脚本发生变化或者我们正在做些什么事情时,有没有人知道改变哈希的解决方案?
编辑: 我注意到,根据我使用的环境,行为会有所不同。 本地开发似乎正在起作用,但它不适用于登台服务器。 应该有区别吗?
EDIT2: 似乎在生产服务器上也应该正常工作。将不得不对原因可能做更多的研究。
EDIT3: 似乎导致问题的那个在注册表中LogRewrittenUrlEnabled被设置为false以允许url在使用动态内容压缩(gzip)的同时重写,因此必须找到另一种方法来启用此
答案 0 :(得分:0)
你是对的,如果你改变脚本的内容,缓存 - 破坏者哈希应该改变。关于捆绑缓存如何工作的一些有用信息可以帮助您ASP.NET MVC Bundling cache. (Detecting css files changes) (internal behaviour)。
答案 1 :(得分:0)
问题在于我们在注册表中的服务器上
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled set to false
如果你有,那么当更改内容i包时,cache-buster哈希不会刷新。