1

在 MVC 中使用包后备时,我注意到当 cdn 失败时,后备包没有附加版本字符串。有没有办法强制版本字符串出现?

我担心的是,如果我迁移到更新版本的 jQuery(或引导程序或其他),脚本将不会在客户端上更新,因为它仍可能在缓存中(因为默认情况下缓存长度为 1 年)。

例如,这个捆绑配置:

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('&lt;script src="/bundles/jQuery2"&gt;&lt;\/script&gt;');
</script>
<script src="/bundles/jQuery2"></script>

这是一个错误,一个疏忽,还是我错过了让版本字符串出现的东西?

我希望后备包呈现为:

<script src="/bundles/jQuery2?v=somejunkuniquetothisversionofthefile"></script>

我怎样才能做到这一点?

我知道之前有人问过这个问题,但作者没有更新他的问题以包含任何代码,所以我在这里这样做。

4

0 回答 0