2010-03-28 3 views
0

Il s'agit probablement d'une question très élémentaire, mais il semble que des problèmes se posent pour brancher des plugins jquery. Le problème semble être autour de l'emplacement du script, css et images et en s'assurant que le CSS a l'URL correcte pour les images.meilleure pratique pour l'implémentation du plugin Jquery et l'emplacement des ressources

Le plug-in standard a la structure de dossier suivant (par exemple: JPicker)

  • js
  • css
  • images

Mon projet est asp.net mvc donc j'ai la valeur par défaut:

  • scripts
  • images
  • contenu

Alors, j'essaie de diviser le plugin jquery dans les dossiers appropriés (pas sûr si cela est la meilleure façon?). Ensuite, j'essaie de corriger les références aux images (URL de fond) dans le CSS. Je crois que l'URL est relative à la page qui implémente le fichier css, pas l'emplacement du fichier css lui-même.

Quoi qu'il en soit, quand j'essaye ce qui précède, les plugins ne semblent pas fonctionner. Je crois que le problème réside dans le fait que les images n'ont pas été trouvées. Le code jquery s'exécute sans erreur, donc je suppose que ce n'est pas le problème.

Toute aide/conseils très appréciés

Répondre

3

En CSS, les images doivent être en relation avec au fichier CSS, ce qui va fixer d'autres plug-ins. Mais ... ce n'est pas le problème avec jPicker spécifiquement. Pour une raison quelconque, ce plugin fait référence aux fichiers directement dans le .js. Il a un chemin d'images codées en dur que vous pouvez trouver dans le code ici:

clientPath: '/jPicker/images/' 

Pour passer outre, lorsque vous appelez jPicker, définissez le chemin comme celui-ci:

$('#myPicker').jPicker({images:{clientPath:'/images/'}}); 
+0

Oui, ça l'a fait, merci beaucoup. – ptutt

1

Ceci est Chris Tillman, le développeur du plugin jPicker. Je voulais savoir pourquoi le script référence les fichiers avec l'option clientPath.

La raison pour laquelle les fichiers sont référencés directement au lieu de simplement utiliser les fichiers CSS inclus est pour IE5.5/6. Ils ne supportent pas la translucidité sans l'utilisation d'un filtre, et j'ai besoin du chemin d'accès aux images pour régler le filtre. Si je pouvais éliminer cela, il pourrait être lié à partir du fichier CSS.

Je recommande toujours d'utiliser un chemin absolu pour le clientPath, car en JavaScript, lorsque j'obtiens ces emplacements d'image, ils seront en relation avec la page en cours, et non en relation avec le fichier JS. Cela signifie que si vous utilisiez des chemins relatifs et que vous disposiez de deux pages dans des emplacements différents, vous auriez besoin de deux copies des images.

Vous pouvez cependant diviser les fichiers css et image, et pointer le clientPath vers le dossier image. Je n'utilise pas clientPath pour voir les fichiers css ou js. Faites simplement référence à l'emplacement correct pour CSS et JS dans votre page et définissez le clientPath dans le dossier où se trouvent les images.

Questions connexes