Question

Je viens de déplacer un projet vers la version bêta du framework ASP.net MVC et le seul problème que je rencontre est avec jQuery et jQueryUI.

Voici le deal:

Dans Site.Master se trouvent les références de script suivantes:

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

Et avec ceux-ci, le accordian UI que j'ai sur l'une des vues fonctionne parfaitement, sauf pour un problème: les images de ThemeRoller ne sont pas incluses dans la page. Si je commente les références jQuery, les images de ThemeRoller sont là. Tous les css sont dans le Content folder et tous les scripts sont dans le Scripts folder.

Je sais que c'est un problème de chemin idiot, mais ça me fait trembler.

Qu'est-ce qui me manque?

Mettre à jour

J'ai essayé la première réponse en vain, lisez le commentaire pour plus de détails. Merci encore pour ceux qui regardent.

La deuxième approche ne fonctionne pas non plus. Je suis dérouté.

Une autre mise à jour

L'utilisation des balises Url.Content pour les scripts permet en effet de les exécuter correctement. L’utilisation d’une balise standard pour la feuille de style permet d’obtenir tous les styles sur la page SAUF pour tous ceux liés à ThemeRoller.

Le fichier jquery-ui-themeroller.css se trouve dans le dossier Contenu et lorsque j'inspecte un élément, le css est présent. Je soupçonne que le problème vient du mappage de ce fichier css vers le dossier images du lecteur, qui se trouve également dans le dossier Contenu. Les liens d’image dans ce fichier sont spécifiés comme suit: background: url(images/foo.gif)

Les liens dans ce fichier doivent-ils changer?

Était-ce utile?

La solution

Est-ce que cela vous aide?

http://forums.asp.net/p/1334947/2690469.aspx

  

La raison de l'inconstance est   très simple, bien que j'avoue que ce n'est pas   facile à comprendre! Quand vous avez un   < link > tag à l'intérieur d'une < tête   runat = " serveur " > ;, ASP.NET traitera   le < lien > marquer et détecter les URL et   les résoudre par rapport à la   racine de l'application. Quand vous avez un   < script > tag sur la page (sans   runat = " serveur ") alors ASP.NET   laissez-le tranquille car il est tout simplement   ancien HTML.

     

Utiliser Url.Content () est l’approche que je   utiliserait pour résoudre cela car ça va   se résoudre par rapport à la racine de l'application,   tout comme le < link > tag.

Autres conseils

À moins que toutes vos vues soient au même niveau, vous devez soit utiliser

.
  • Utilisez un chemin absolu tel que /Scripts/jquery-1.2.6.js
  • Ou mieux encore, résolvez un chemin virtuel tel que <% = Url.Content (& "; ~ / Scripts / jquery-1.2.6.js &";)% >

Url.Content () http://jvance.com/media/ 2008/10/18 / UrlContent5.media

Vous devez modifier les liens dans jquery-ui-themeroller.css pour qu'ils pointent vers l'emplacement actuel des images.

Comme dans, vous devez mettre à jour le chemin des images que le fichier css recherche.

background: url(images/foo.gif)

Supprimez les 'images /' de vos chemins pour les rendre comme suit:

background: url(foo.gif)

car votre css et vos images se trouvent dans le dossier de contenu.

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterClientScriptInclude(this.GetType(),"JQuery", ResolveUrl("~/js/jquery.min.js"));
        Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "JQueryUI", ResolveUrl("~/js/jquery-ui.custom.min.js"));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top