使用mvc bundle重建url

时间:2014-04-14 10:45:18

标签: c# asp.net-mvc bundling-and-minification

在我建造的网站上,我们正在使用内置的捆绑和缩小功能。 我们使用@Scripts.Render

渲染脚本
@Scripts.Render("~/bundles/scripts")

它会生成如下链接:

bundles/scripts?v=3-DUUAAegZl4yp1O4V0VL0GnJ0U6gT3De8yKb41lfGs1

这里我认为哈希:

v=3-DUUAAegZl4yp1O4V0VL0GnJ0U6gT3De8yKb41lfGs1 
如果我们对包含的脚本进行了更改,那么

会很聪明并且会发生变化,但事实并非如此。

现在,当我们尝试实现自定义cdn以进行捆绑时,它在更新时失败,因为哈希似乎永远不会改变。

当脚本发生变化或者我们正在做些什么事情时,有没有人知道改变哈希的解决方案?

编辑: 我注意到,根据我使用的环境,行为会有所不同。 本地开发似乎正在起作用,但它不适用于登台服务器。 应该有区别吗?

EDIT2: 似乎在生产服务器上也应该正常工作。将不得不对原因可能做更多的研究。

EDIT3: 似乎导致问题的那个在注册表中LogRewrittenUrlEnabled被设置为false以允许url在使用动态内容压缩(gzip)的同时重写,因此必须找到另一种方法来启用此

2 个答案:

答案 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哈希不会刷新。