Ma question est similaire à celle-ci :
Sauf que je veux m'en tenir à l'empaquetage propre à MVC si je peux. Je suis en train de me casser la tête à essayer de comprendre quel est le bon modèle pour spécifier les bundles de style de façon à ce que les css autonomes et les jeux d'images tels que jQuery UI fonctionnent.
J'ai une structure de site MVC typique avec /Content/css/
qui contient mes CSS de base tels que styles.css
. Dans ce dossier css, j'ai aussi des sous-dossiers tels que /jquery-ui
qui contient son fichier CSS ainsi qu'un /images
dossier. Les chemins des images dans le CSS de jQuery UI sont relatifs à ce dossier et je ne veux pas les modifier.
Si je comprends bien, lorsque je spécifie un StyleBundle
Je dois spécifier un chemin virtuel qui ne correspond pas à un chemin de contenu réel, car (en supposant que j'ignore les routes vers le contenu) IIS essaierait alors de résoudre ce chemin comme un fichier physique. Je spécifie donc :
bundles.Add(new StyleBundle("~/Content/styles/jquery-ui")
.Include("~/Content/css/jquery-ui/*.css"));
rendu en utilisant :
@Styles.Render("~/Content/styles/jquery-ui")
Je peux voir la demande sortir à :
http://localhost/MySite/Content/styles/jquery-ui?v=nL_6HPFtzoqrts9nwrtjq0VQFYnhMjY5EopXsK8cxmg1
Il renvoie la réponse CSS correcte et minifiée. Mais ensuite, le navigateur envoie une demande pour une image relativement liée comme :
http://localhost/MySite/Content/styles/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
Ce qui est un 404
.
Je comprends que la dernière partie de mon URL jquery-ui
est une URL sans extension, un gestionnaire pour mon paquet, donc je peux voir pourquoi la demande relative pour l'image est simplement /styles/images/
.
Donc ma question est quelle est la bonne façon de procéder de gérer cette situation ?
9 votes
Après avoir été frustré encore et encore avec la nouvelle partie Bundling and Minification, je suis passé à Cassete La sorcière est maintenant gratuite et fonctionne beaucoup mieux !
3 votes
Merci pour le lien, Cassette a l'air bien et je vais certainement le vérifier. Mais je veux m'en tenir à l'approche fournie si possible, cela doit sûrement être possible sans avoir à modifier les chemins d'accès aux images dans les fichiers CSS tiers à chaque fois qu'une nouvelle version est publiée. Pour l'instant, j'ai conservé mes ScriptBundles (qui fonctionnent bien) mais je suis revenu aux liens CSS simples jusqu'à ce que je trouve une solution. Merci.
0 votes
Ajout de l'erreur probable pour des raisons de référencement : Le contrôleur du chemin '/bundles/images/blah.jpg' n'a pas été trouvé ou n'implémente pas IController.