6

我理解並完全理解新的捆綁通配符{version}正則表達式,因爲即使在更新後它仍會繼續提取腳本和樣式庫。問題是我不能有效地工作。MVC4綁定通配符 - *與{version}

我以前使用下面的符號來接我的jQuery腳本:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-1.*")); 

,它便拿起相匹配的星號通配符的所有文件。

但是,當我嘗試以下:

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

我注意到,jQuery的文件沒有被寫入到_Layout.cshtml頁面。

注 - 我確實使用下面的HTML代碼,這兩個例子:

@Scripts.Render("~/bundles/jquery") 

當我使用上述(「*」)符號的第一個例子被寫入頁以下幾點:

<script src="/Scripts/jquery-1.7.2.js" type="text/javascript"></script> 

但是,當我使用「{版本}」表示法時,僅應該寫入庫的空白空間。這涉及到jquery文件以及相關的CSS樣式表。

無論我是在編譯DEBUG還是RELEASE模式。結果是一樣的。很顯然,在釋放模式中使用「*」符號時,我會得到優化版本:

<script src="/bundles/jquery?v=VUv2YOeuOgHad-FHZ-vGMDu9wN1j9VZGifI1SBUUSMs1" type="text/javascript"></script> 

所以是完美主義者,所有的開發商都,我將非常願意看到{}版本符號的工作對我來說,因爲我不斷更新新版本,並希望對我的部署進行控制。

任何深入瞭解我可能做錯了什麼非常感謝。

由於提前, 丹

+0

你在哪個版本的.Net下運行該項目?我相信{version}關鍵字對.net 4.5有一個限制。 –

+0

嗨,約翰,我確實使用.Net 4.5框架,也許這是一些問題的來源。我認爲現在已經有足夠的時間了,儘管自從*符號起作用並且允許我前進以來我沒有檢查過。 – djmarquette

+2

解決方案中是否同時包含.min.js和.js版本的jQuery文件?在以前版本的Web優化中,假定在發佈模式下使用.min文件,而在調試中使用不包含.min的文件,即使文件不存在也是如此。此行爲在更高版本中已更改。請參閱http://aspnetoptimization.codeplex.com/workitem/32。我不確定這是否是您的問題,因爲您引用的文件名中沒有.min。 – pwdst

回答

0

嘗試更新Microsoft.AspNet.Web.Optimization和相關的NuGet包:Microsoft.Web.Infrastructure,WebGrease,ANTLR的。不僅檢查「nuget.org」標籤,還檢查「全部」。