2013-02-25 78 views
3

我正在使用ASP.Net 4.0捆綁功能。在我的〜/ Scripts文件夾中,我有幾個版本的jquery-xxx和jquery-ui-yyy。 xxx版本是 1.4.4, 1.6.4, 1.8.3, 1.9.1。Bundle.cs使用哪個版本的JQuery

該YYY版本是1.8.1 , 1.8.custom, 1.9.2, 1.10.0。

哪些在下列捆綁表中有效?謝謝。

public static void RegisterBundles(BundleCollection bundles) 
    { 
     #region JavaScript bundles 
     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui-{version}.js", 
      "~/Scripts/jquery.unobtrusive*", 
      "~/Scripts/jquery.validate*")); 

回答

2

{version}將被替換圖案(\d+(?:\.\d+){1,3})和相匹配的正則表達式的所有文件都將被包括在內。

+0

謝謝。但在運行時使用哪個版本的jquery? – user266909 2013-02-25 21:59:28

+0

在我看來,它將會是所有版本的混合。您應該避免包含同一個庫的多個版本。 – 2013-02-26 07:12:44

1

正如Slawomir所說,它將包含所有版本。

如果你有

bundles.Add(new ScriptBundle("~/bundles/foo").Include(
      "~/Scripts/foo-{version}.js")); 

而且在/腳本

foo-1.js 
foo-2.1.js 
foo-32-1.100.js 

下列文件如果您添加以下到您的視圖:

您與渲染結束(以調試模式)html:

//note that foo-1.js does not match 
<script src="/Scripts/foo-2.1.js"></script> 
<script src="/Scripts/foo-32.1.100.js"></script> 

這就提供了一種簡單的方法來升級腳本,而無需重新編譯,但同樣作爲Slawomwir說,你最終將與所有文件匹配(\d+(?:\.\d+){1,3})正則表達式