我理解並完全理解新的捆綁通配符{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>
所以是完美主義者,所有的開發商都,我將非常願意看到{}版本符號的工作對我來說,因爲我不斷更新新版本,並希望對我的部署進行控制。
任何深入瞭解我可能做錯了什麼非常感謝。
由於提前, 丹
你在哪個版本的.Net下運行該項目?我相信{version}關鍵字對.net 4.5有一個限制。 –
嗨,約翰,我確實使用.Net 4.5框架,也許這是一些問題的來源。我認爲現在已經有足夠的時間了,儘管自從*符號起作用並且允許我前進以來我沒有檢查過。 – djmarquette
解決方案中是否同時包含.min.js和.js版本的jQuery文件?在以前版本的Web優化中,假定在發佈模式下使用.min文件,而在調試中使用不包含.min的文件,即使文件不存在也是如此。此行爲在更高版本中已更改。請參閱http://aspnetoptimization.codeplex.com/workitem/32。我不確定這是否是您的問題,因爲您引用的文件名中沒有.min。 – pwdst