2010-09-20 6 views
3

J'ai un problème avec l'ajout de jQuery à une application ASP.NET MVC. J'ajoute jquery à Site.Master comme ça:Ajout de jQuery à l'application ASP.NET MVC

<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script> 

Dans Visual Studio 2010, c'est o.k. - maintenant, je publie une application sur un serveur Web (IIS 7) un dossier comme un:

http://localhost/AnApplication 

Lorsque vous appelez le site que je vois un 404 - Fichier introuvable dans Firebug Net - Voir. Firebug montre que la demande est à la recherche:

http://localhost/Scripts/jquery-1.4.1.js 

Mais fichier serait à http://localhost/AnApplication/Scripts/jquery-1.4.1.js

Comment puis-je faire référence au fichier jquery.js que asp.net trouve le fichier jQuery sans générer 404 Erreur dans le journal IIS fichier?

J'ai essayé avec <script src="../Scripts/jquery-1.4.1.js" type="text/javascript" /> et <script src="~/Scripts/jquery-1.4.1.js" type="text/javascript" /> mais sans succès.

Répondre

4

les gars, c'est MVC, il ne fonctionne pas comme ça!

<script src="<%= Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script> 

Voici comment vous le faites.

+0

Ahhh maintenant je vois. J'ai totalement oublié que c'était MVC, mon mauvais =) +1 – RPM1984

+0

Muchas Gracias - fonctionne parfaitement ... cette question facile n'est pas répondue dans mon mvc-book ... – PirzerTobias

+2

qu'est-ce qui ne va pas avec l'écriture:

0

Selon le contrôleur et l'action actuellement appelés, le chemin relatif change. Vous pouvez référencer vos fichiers js avec un chemin absolu depuis le répertoire de l'application:

<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
+0

Merci, est-il pas possible de le faire par rapport? Il n'est pas dans mes mains de définir le chemin de l'application - cela peut changer. Je peux aussi définir le chemin pour les fichiers css relatifs - cela fonctionne aussi - pourquoi ça ne marche pas avec js? link href = "../../ Content/Site.css" rel = "stylesheet" type = "text/css" – PirzerTobias

+0

a mis à jour la réponse pour utiliser le chemin absolu vers le répertoire personnel – Carvellis

+0

qui était ma réponse originale. =) – RPM1984

0

Essayez de ne pas utiliser les chemins relatifs pour les inclusions.

le faire comme ceci:

<script src="~/AnApplication/Scripts/jquery-1.4.1.js" type="text/javascript"></script> 
+0

ne fonctionne pas dans MVC – Stefanvds

+0

Mais je ne connais pas le chemin de l'application obtiendra ... – PirzerTobias

1

Essayez un chemin absolu à certains CDN comme <script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

+0

c'est une bonne suggestion mais cela ne résout pas son problème s'il veut par exemple afficher une image qui se trouve dans le dossier de téléchargement :) – Stefanvds