Livré lien css obtient une erreur 404
Je suis en train d'essayer d'obtenir le regroupement de travailler dans ASP.NET MVC 4. J'obtiens une erreur 404 à partir du lien généré par le logiciel CSS. J'ai effectué les opérations suivantes:
-
Installé le "Microsoft ASP.NET l'Optimisation Web du Cadre" package via NuGet (v4.0.20710.0)
-
Créé un BundleConfig classe dans le App_Start dir avec le contenu suivant:
using System.Web.Optimization; namespace BsdAppTemplate.Web_Nancy.App_Start { public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new StyleBundle("~/bundles/styles/cvi").Include( "~/mainstyles.css" )); } } }
-
A ajouté ce qui suit sur le Web.config à la racine du site:
<system.web> <compilation debug="false" targetFramework="4.5" /> <pages> <namespaces> <add namespace="System.Web.Optimization"/> ... </namespaces> </pages> </system.web>
-
Ajouté ce qui suit à l'élément de tête de mon MVC fichier de mise en page:
@Styles.Render("~/bundles/styles/cvi")
-
Copié le fichier CSS référencé dans BundleConfig ("mainstyles.css") dans le répertoire racine de mon projet web.
Quand j'ai vue la source d'un fichier de rendu, je peux voir le lien apparaît sous la forme:
<link href="/bundles/styles/cvi" rel="stylesheet"/>
Ce lien les résultats dans un 404 lors de la navigation ou de l'affichage de la demande de page dans google Chrome, onglet réseau.
J'ai aussi essayé le équivalent sur un formulaire web, mais j'obtiens le même résultat (404) à partir du lien généré lorsque j'ajoute:
<%: Styles.Render("~/bundles/styles/cvi") %>
- De vous description, il semble que vous avez créé
BundleConfig
classe "à la main" êtes-vous sûr que la bonneRegisterBundles
méthode est appelée dans votreApplication_Start
méthode? - merci, c'est exactement ce qui me manquait. Si vous voulez ré-entrer sur ce comme une réponse plutôt qu'un commentaire, je vais le marquer comme réponse. Aussi, est-il une alternative à cette mise en place à la main? Je suivais ce blog: asp.net/mvc/tutorials/mvc-4/bundling-and-minification
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez manqué l'étape dans laquelle vous appliquez votre configuration en appelant
RegisterBundles
dansApplication_Start
:Généralement dans les cas où la
BundleConfig
classe est déjà là (que ce soit en tant que partie du projet de modèle ou créée par le package NuGet lors de l'installation) cet appel est aussi déjà présent - c'est pourquoi de nombreux tutoriels sont implicites à ce sujet.Vous devriez aussi être conscient que le
BundleConfig
classe est là pour la séparation des préoccupations et afin de conserver laApplication_Start
propre. Dans les cas simples, rien ne l'empêche de vous inscrire bundles directement dansApplication_Start
:StyleBundle
virtualpath: Lien 1 , Lien 2, Lien 3, Lien 4 , espérons que cela aide quelqu'un.Trouve cette question par les résultats de google, mais le problème dans mon cas était de Windows 2008 besoin
web.config
de travail lors de la compilation debug=false.Il a bien fonctionné sur Win7 dev machine sans cette.
J'ai eu le même problème que mon script bundle soudain répondu avec 404. J'ai une solution similaire à @fiat réponse que j'ai trouvé sur ce billet de blog.
La solution a été de supprimer et ajouter de la
BundleModule
dans les modules de la partie de la section de lasystem.webServer
section.J'ai le même problème (en ASP.Net webform), j'ai résolu mon problème avec les Ignorer "bundles/" itinéraire Global.asax :
Tous mes faisceaux des noms commençant par "~/bundles/..." n'a pas été trouvé dans ma WebAPI.
L'ajout de la ligne à mon RouteConfig.cs de la classe
fixé mon problème.