Dans un .NET MVC4
projet, comment ça @Styles.Render
marche?
Je veux dire, dans @Styles.Render("~/Content/css")
quel fichier appelle-t-il?
Je n'ai pas de fichier ou de dossier appelé "css" dans mon Content
dossier.
c#
asp.net-mvc
razor
asp.net-mvc-4
Ricardo Polo Jaramillo
la source
la source
Réponses:
Il appelle les fichiers inclus dans ce bundle particulier qui est déclaré dans la
BundleConfig
classe duApp_Start
dossier.Dans ce cas particulier, l'appel à
@Styles.Render("~/Content/css")
appelle "~ / Content / site.css".la source
*.min.*
charge les*.*
fichiers.Faites attention à la sensibilité à la casse. Si vous avez un fichier
et vous redirigez dans votre Bundle.config vers
il ne chargera pas le css.
la source
Un peu tard pour la fête. Mais il semble que personne n'ait mentionné le
regroupement et la minification de
StyleBundle
, alors ..appelle
Application_Start()
:qui à son tour appelle
RegisterBundles()
combine et réduit efficacementbootstrap.css
etSite.css
en un seul fichier,
Mais ..
uniquement lorsque
debug
est défini surfalse
inWeb.config
.Dans le cas contraire
bootstrap.css
etSite.css
sera servi individuellement.Ni groupé, ni minifié:
la source
src="@url.content("~/Folderpath/*.css")"
devrait rendre les stylesla source
Comme défini dans App_start.BundleConfig, il s'agit simplement d'appeler
Rien ne se passe même si vous supprimez cette section.
la source
Polo Je n'utiliserais pas de bundles dans MVC pour plusieurs raisons. Cela ne fonctionne pas dans votre cas, car vous devez configurer une classe BundleConfig personnalisée dans votre dossier Apps_Start. Cela n'a aucun sens lorsque vous pouvez simplement ajouter un style dans la tête de votre html comme ceci:
Vous pouvez également les ajouter à une classe Layout.cshtml ou partielle appelée depuis toutes vos vues et déposée dans chaque page. Si vos styles changent, vous pouvez facilement changer le nom et le chemin sans avoir à recompiler.
L'ajout de liens codés en dur à CSS dans une classe rompt également avec le but de la séparation de l'interface utilisateur et de la conception du modèle d'application. Vous ne voulez pas non plus que les chemins de feuille de style codés en dur soient gérés en c # car vous ne pouvez plus créer de "skins" ou de modèles de style séparés pour différents appareils, thèmes, etc., comme ceci:
En utilisant ce système et Razor, vous pouvez désormais désactiver le Skin Path à partir d'une base de données ou d'un paramètre utilisateur et modifier la conception globale de votre site Web en changeant simplement le chemin de manière dynamique.
Il y a 15 ans, CSS avait pour objectif de développer des "habillages" de feuilles de style contrôlés par l'utilisateur et par l'application pour les sites afin que vous puissiez changer l'apparence de l'interface utilisateur séparément de l'application et réutiliser le contenu indépendamment de la structure des données. .... par exemple une version imprimable, mobile, version audio, xml brut, etc.
En revenant maintenant à ce système de chemin d'accès "à l'ancienne", codé en dur utilisant des classes C #, des styles rigides comme Bootstrap, et en fusionnant les thèmes des sites avec le code d'application, nous sommes revenus à la façon dont les sites Web ont été construits en 1998.
la source
minification
? : s / :(J'ai fait toutes les choses nécessaires pour ajouter le bundling à un site Web MVC 3 (je suis nouveau dans la solution existante).
Styles.Render
n'a pas fonctionné pour moi. J'ai finalement découvert qu'il me manquait simplement deux points. Dans une page maître:<%: Styles.Render("~/Content/Css") %>
je ne comprends toujours pas pourquoi (sur la même page)<% Html.RenderPartial("LogOnUserControl"); %>
fonctionne sans les deux-points.la source