2016-05-13 4 views
0

eine Website in MVC gebaut, darunter jQuery in der Layout-Datei wie folgt aus:

<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>@ViewBag.Title</title> 
    @Scripts.Render("~/bundles/jquery") 
    @Styles.Render("~/Content/css") 
</head> 
<body> 
    <!-- content --> 
</body> 
</html> 

JQuery über nuget verwiesen wird und wie diese gebündelt:

public class BundleConfig 
{ 
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-{version}.js", 
      "~/Scripts/jquery-ui.min.js", 
      "~/Scripts/stickyfill.js")); 
} 

Und das funktioniert gut, die Website lokal in Visual Studio ausgeführt.

Wenn ich zu IIS bereitstellen und versuche, die Site auszuführen, bekomme ich den gefürchteten Uncaught ReferenceError: jQuery is not defined Fehler.

Das erste, was ich war überprüft, dass das jQuery-Paket über die Adresse zu verwenden, die im Einsatz Seite versucht, zur Verfügung stand:

/bundles/jquery?v=[a token] 

Was es ist. Sie können es sogar in den Bundles von Chrome Developer Tools referenzieren. Es ist erwähnenswert, dass das CSS, das über den gleichen Mechanismus mit einem Token bereitgestellt wird, gut funktioniert.

Ich habe mich auch die Antworten auf die Frage JQuery - $ is not defined durchgearbeitet und entweder beseitigt oder ausprobiert, ohne Erfolg.

Das einzige, was ich mir vorstellen kann, ist, dass es nicht vor dem ersten Aufruf an jQuery(document).ready() geladen wird - deshalb habe ich das Bündel in das -Tag verschoben. Aber das hilft nicht, und ich weiß nicht, was ich noch tun kann, um die Seitenladung zu verlangsamen oder zu warten.

Was in aller Welt könnte das sein?

EDIT: Somone bat um den Kopf der gerenderten Seite:

<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <title>[the title]</title> 
    <script src="/bundles/jquery?v=[a token]"></script> 
    <link href="/Content/css?v=[a token]" rel="stylesheet"/> 
</head> 
+0

können Sie die 'HTML' der' generated' Seite veröffentlichen, zumindest den Kopf ? – imvain2

+0

Also was sagt das Netzwerk-Panel, wenn es die jQuery-Datei lädt? – epascarello

+0

@ imvain2 das ist fertig - danke fürs schauen –

Antwort

1

try this:

public class BundleConfig 
{ 
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-1.8.2.min.js", 
      "~/Scripts/jquery-ui.min.js", 
      "~/Scripts/stickyfill.js")); 
} 
+0

Danke für den Vorschlag, aber es hat nicht geholfen. –

+0

Ich denke, Sie verwenden jQuery zweimal auf Ihrer Seite. –

Verwandte Themen