0

我想捆綁所有JavaScript文件,以便它只能打到服務器一次。但有了這個,我正面臨一個問題。我正在嘗試使用mvc4綁定功能來縮小JavaScript文件

bundles.Add(new ScriptBundle("~/LayoutJs").Include(
       "~/Scripts/Libraries/jquery-1.8.2.min.js", 
       "~/Scripts/Libraries/kendo/2013.1.319/kendo.all.min.js", 
       "~/Scripts/Libraries/jquery.blockUI.js", 
       "~/Scripts/Libraries/knockout/knockout-2.1.0.js", 
       "~/Scripts/Libraries/knockout/knockout.mapping-latest.js", 
       "~/Scripts/Libraries/jquery.unobtrusive-ajax.min.js", 
       "~/Scripts/Libraries/tabStrip.js", 
       "~/Scripts/Libraries/underscore-min.js", 
       "~/Scripts/Libraries/knockout/knockout-kendo.min.js", 
       "~/Scripts/Common.js" 
       )); 

我得到的錯誤,沒有定義jquery,但我包括在捆綁頂部的jquery。

我該如何解決這個問題?

+1

在** Kendo javascript文件之前添加** all ** jQuery JavaScript文件**。 – Hemanth 2013-05-09 07:26:40

回答

0

請首先確認您已經添加腳本,如下面

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery-1.7.1.min.js", 
"~/Scripts/jquery.validate.min.js", 
"~/Scripts/jquery.validate.unobtrusive.min.js")); 

,並確保上述捆在BundleConfig類定義如下圖所示:

public class BundleConfig 
{ 
public static void RegisterBundles(BundleCollection bundles) 
{ 


bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery-1.7.1.min.js", 
"~/Scripts/jquery.validate.min.js", 
"~/Scripts/jquery.validate.unobtrusive.min.js")); 
} 
} 

通配符「*」字符用於合併同一目錄中具有相同前綴或後綴的文件與其名稱相同的文件。假設你要添加的所有與存在的腳本文件中「〜/腳本」目錄下,並有「jQuery的」爲前綴,然後像下面你可以創建捆綁:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include("~/Scripts/jquery*.js")); 

所有的郵件都用在Application_Start事件中註冊您的Web應用程序的Global.asax文件。

protected void Application_Start() 
{ 
BundleConfig.RegisterBundles(BundleTable.Bundles); 
// code 
} 
+0

當使用「BundleTable.EnableOptimizations = true;」實現時那麼它工作正常。但是當我嘗試使用「BundleTable.EnableOptimizations = false;相同的代碼時,它會產生錯誤,如果BundleTable.EnableOptimizations = false,jquery沒有被定義爲 – 2013-05-09 07:40:31

+0

;那麼一些文件是可訪問的,有些則不是。 – 2013-05-09 08:26:31

+1

@PrinceChopra因爲任何'.min'文件不包含在調試模式下,你可能需要使用非縮小版本,或者只是重新命名縮小版本以刪除'.min' – MikeSmithDev 2013-05-09 13:30:24

4

我相信這是因爲您試圖捆綁min文件。這些文件將被MVC4捆綁器忽略。

解決此問題的方法是將.min文件重命名爲.min。或者創建你自己的忽略模式(見鏈接)。

https://stackoverflow.com/a/12005272/1593273

你也可以升級到1.1版本ALPHA1,在這已得到修復。

ASP.NET Web Optimization

+1

它們只在調試模式下被忽略。 – MikeSmithDev 2013-05-09 13:30:57