我對jquery在我的項目中遇到的一個小問題感到困惑。該項目是Visual Studio 11中的MVC4網站。jquery不包含在捆綁中
問題是jQuery未包含在捆綁中,而且它在我更新到1.7.2之前似乎一直在工作,但無法確定。
我可以在捆綁文件的頂部看到jQuery文件的註釋,但無法找到它的任何代碼。其他所有文件似乎都包含在內(我自己的腳本和jquery ui文件)。
我已經嘗試過濾器並創建自己的包,但似乎沒有任何工作。
我真的很感謝任何幫助,因爲當頁面加載時,所有java腳本只是因爲沒有找到函數而崩潰。如果我只是通常包含java腳本文件,這是行不通的。
編輯:
的Global.asax:
protected void Application_Start()
{
BundleTable.Bundles.EnableDefaultBundles();
}
_Layout.cshtml:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
更新1:
我添加了一些代碼jQuery的FIL e,捆綁文件包含在頂部。
function Test(){ }
然後改成這個,這段代碼就沒有了。
(function Test(){ })
奇怪的是,其他jQuery文件,如UI的不會被刪除,他們是相同的方式。
編輯:看起來這是爲了
更新2:
測試了一些,發現打破,如果我包括我的自定義捆綁任何文件的文件,它打破
- jquery.validate.js
- jquery.validate.unobtrusive.js
- jQuery的。不顯眼,ajax.min.js
在他們之前,我有這些,他們沒有任何錯誤
- jQuery的1.7.2.min.js
- jQuery的UI,19年1月8日工作.min.js
- bootstrap.min.js
它仍然是奇怪的,如果我有這些文件作爲正常的腳本<script src="~/Scripts/jquery.validate.js"></script>
,他們應該他們的工作,沒有錯誤。
不過,如果我捆綁工作文件,然後添加作爲正常後的非工作之一,他們仍然打破
_Layout.cshtml:
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/myBundle")"></script>
<script src="~/Scripts/jquery.validate.js"></script>
的Global.asax:
var bundle = new Bundle("~/js", new JsMinify());
bundle.AddFile("~/Scripts/jquery-1.7.2.min.js");
bundle.AddFile("~/Scripts/jquery-ui-1.8.19.min.js");
bundle.AddFile("~/Scripts/bootstrap.min.js");
BundleTable.Bundles.Add(bundle);
編輯:好像在捆綁的jquery文件中有所改變,這使得驗證插件打破
解決辦法
我試圖在更新之前添加舊文件,它工作正常!管理髮現這是來自NuGet的新的jQuery UI 1.8.19崩潰。
我直接從他們的網站下載了jquery ui,然後用它來代替它,它就起作用了!
如此看來,一些在jQuery用戶界面的NuGet版本改變了捆綁拿起和更改/刪除它,所以它打破..
責怪哪一部分? jQuery UI NuGet包或mvc4捆綁?是否有捆綁問題的解決方案?
你能告訴我們來自global.asax的代碼嗎,你的bundle被初始化了嗎? – 2012-04-19 09:52:03
@SteveHobbs添加了我引用捆綁的代碼 – trembon 2012-04-19 09:54:36
也許這會幫助http://stackoverflow.com/questions/11980458/mvc4-bundler-not-including-min-files – 2013-02-14 14:18:20