Asp.net mvc 5 使用CdnFallbackExpression的MVC捆绑包生成无版本捆绑包
在MVC中使用bundle fallback时,我注意到当cdn失败时,fallback bundle没有附加版本字符串。有没有办法强制显示版本字符串 我担心的是,如果我移动到较新版本的jQuery(或bootstrap或其他版本),脚本将不会在客户端上更新,因为它可能仍在缓存中(因为默认情况下缓存长度为1年) 例如,此捆绑包配置:Asp.net mvc 5 使用CdnFallbackExpression的MVC捆绑包生成无版本捆绑包,asp.net-mvc-5,browser-cache,cdn,fallback,scriptbundle,Asp.net Mvc 5,Browser Cache,Cdn,Fallback,Scriptbundle,在MVC中使用bundle fallback时,我注意到当cdn失败时,fallback bundle没有附加版本字符串。有没有办法强制显示版本字符串 我担心的是,如果我移动到较新版本的jQuery(或bootstrap或其他版本),脚本将不会在客户端上更新,因为它可能仍在缓存中(因为默认情况下缓存长度为1年) 例如,此捆绑包配置: Public Module BundleConfig Public Sub RegisterBundles(ByVal bundles As BundleC
Public Module BundleConfig
Public Sub RegisterBundles(ByVal bundles As BundleCollection)
BundleTable.EnableOptimizations = True
bundles.UseCdn = True
Dim jQuery2 = New ScriptBundle("~/bundles/jQuery2", "//broken.ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js") _
.Include("~/Scripts/jquery-2.1.4.min.js")
jQuery2.CdnFallbackExpression = "window.jQuery"
bundles.Add(jQuery2)
End Sub
End Module
嵌入此呼叫:
@Scripts.Render("~/bundles/jQuery2")
生成此输出:
<script src="//broken.ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
(window.jQuery)||document.write('<script src="/bundles/jQuery2"><\/script>');
</script>
<script src="/bundles/jQuery2"></script>
(window.jQuery)| document.write('script src=“/bundles/jQuery2”\/script');
这是一个bug、一个疏忽,还是我缺少了一些东西来显示版本字符串
我希望回退包呈现为:
<script src="/bundles/jQuery2?v=somejunkuniquetothisversionofthefile"></script>
我怎样才能做到这一点
我知道,但是作者没有更新他的问题以包含任何代码,所以我在这里这么做。好吧,一般来说,这是一个错误的问题。如果您怀疑这是一个bug,请将问题发布到CodePlex站点:。除此之外,我能给你的最好的猜测是,由于实际的捆绑文件只是一个后备包,他们忽略了缓存buster来强制缓存,因此在CDN关闭的时候,你的站点可能仍然可以跳过请求。@ChrisPratt我也有这样的想法,但如果是故意的,这似乎是一个疏忽。谢谢你对CodePlex的指导,我会回答我的问题。好吧,一般来说,这是一个错误的地方。如果您怀疑这是一个bug,请将问题发布到CodePlex站点:。除此之外,我能给你的最好的猜测是,由于实际的捆绑文件只是一个后备包,他们忽略了缓存buster来强制缓存,因此在CDN关闭的时候,你的站点可能仍然可以跳过请求。@ChrisPratt我也有这样的想法,但如果是故意的,这似乎是一个疏忽。感谢您对CodePlex的指导,我将回答我的问题。