2014-09-04 150 views
0

我正在ASP.NET MVC4上創建一個應用程序。jquery在本地主機上工作,但不在IIS上

我在jqGrid中顯示數據,它有一個名稱列附加的超鏈接。

點擊它,打開一個jQuery對話框。

當我部署應用程序時,相同的東西不起作用。

我得到一個錯誤信息:

TypeError: n.browser is undefined 

,錯誤出在:

<script src="/Analytics/bundles/jqueryui?v=a0vNGd5I0ua6k0Tl4zU-HRoN0y8crNJXKefaMq_937w1"> 

我試圖找到在互聯網上的解決方案,但沒有找到線索。 我檢查過所有的js和css都只加載一次。

下面是截圖: Html from Firebug

BundleConfiguration也被設置爲true。

需要一個解決方案...

更新@ Amila的要求:BundleConfig.cs

public static void RegisterBundles(BundleCollection bundles) 
{ 
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
       "~/Scripts/jquery-{version}.js")); 

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

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

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

    bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); 

    bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
       "~/Content/themes/base/jquery.ui.core.css", 
       "~/Content/themes/base/jquery.ui.resizable.css", 
       "~/Content/themes/base/jquery.ui.selectable.css", 
       "~/Content/themes/base/jquery.ui.accordion.css", 
       "~/Content/themes/base/jquery.ui.autocomplete.css", 
       "~/Content/themes/base/jquery.ui.button.css", 
       "~/Content/themes/base/jquery.ui.dialog.css", 
       "~/Content/themes/base/jquery.ui.slider.css", 
       "~/Content/themes/base/jquery.ui.tabs.css", 
       "~/Content/themes/base/jquery.ui.datepicker.css", 
       "~/Content/themes/base/jquery.ui.progressbar.css", 
       "~/Content/themes/base/jquery.ui.all.css", 
       "~/Content/themes/base/jquery.ui.theme.css")); 

    bundles.Add(new StyleBundle("~/Content/jquery.jqGrid/css").Include("~/Content/jquery.jqGrid/ui.jqgrid.css")); 
} 

_Layout.cshtml

(頭代碼)

@Styles.Render("~/Content/css") 
@Scripts.Render("~/bundles/modernizr") 
@Styles.Render("~/Content/jquery.jqGrid/css") 
@Styles.Render("~/Content/themes/base/css") 

(體代碼)

0 jqGrid的的

視圖包含:

@section Scripts{ 
    @Scripts.Render("~/bundles/jqueryval") 
    @Scripts.Render("~/Scripts/i18n/grid.locale-en.js") 
    @Scripts.Render("~/Scripts/jquery.jqGrid.min.js") 
} 
+0

爲您正在使用 「〜/腳本/ jquery- {}版本.js文件」 將採取什麼都在你的腳本文件夾jQuery的版本。這是你在本地主機和服務器上使用的相同版本嗎? – Amila 2014-09-04 07:34:38

+0

對不完整的信息。我使用的是jquery-2.1.0和jquery-ui-1.10.4。並且我在本地主機和IIS中使用相同的版本,相同的代碼正在發佈並部署在IIS上 – 2014-09-04 07:35:58

+1

嘗試包括''@ Scripts.Render(」〜/ bundles/jquery「)' – Amila 2014-09-04 07:41:44

回答

0

檢查this鏈接

var matched, browser; 

jQuery.uaMatch = function(ua) { 
    ua = ua.toLowerCase(); 

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || 
     /(webkit)[ \/]([\w.]+)/.exec(ua) || 
     /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || 
     /(msie) ([\w.]+)/.exec(ua) || 
     ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || 
     []; 

    return { 
     browser: match[ 1 ] || "", 
     version: match[ 2 ] || "0" 
    }; 
}; 

matched = jQuery.uaMatch(navigator.userAgent); 
browser = {}; 

if (matched.browser) { 
    browser[ matched.browser ] = true; 
    browser.version = matched.version; 
} 

// Chrome is Webkit, but Webkit is also Safari. 
if (browser.chrome) { 
    browser.webkit = true; 
} else if (browser.webkit) { 
    browser.safari = true; 
} 
1

嘿,你必須使用最新版本的jQuery的,即: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

它將解決了錯誤當然。

0

請問您可以使用jQuery和jQueryUI使用的兩個包來更新您的帖子。

在調試模式和發佈模式下,您必須使用兩個不同版本的jQuery。請直接看看http://api.jquery.com/jquery.browser/

你n.browser因爲你的腳本已經過壓縮,否則其$ .browser

+0

代碼已更新,請檢查 – 2014-09-04 07:30:29

0

參考您的jQuery文件的視圖的頂部。捆綁不工作,因爲他們有時會應:

@section Scripts 
{ 
<script src="../Scripts/jquery-1.10.1.js"></script> 
<script src="../Scripts/jquery-1.10.1.min.js"></script> 
<script src="../Scripts/jquery.validate.js"></script> 
. 
. 
. 
etc..... 

}

1

您需要設置編譯調試=「假」,在您的網頁。配置使用Jquery & CSS捆綁,無論.NET運行4.0或4.5。

編譯調試= 「假」 targetFramework = 「4.0」

相關問題