c# ~/ - Styles.Render en MVC4




4 Answers

Está llamando a los archivos incluidos en ese paquete particular que se declara dentro de la clase BundleConfig en la carpeta App_Start .

En ese caso particular, la llamada a @Styles.Render("~/Content/css") está llamando "~ / Content / site.css".

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
current bundle

En un proyecto .NET MVC4 , ¿cómo funciona @Styles.Render ?

Quiero decir, en @Styles.Render("~/Content/css") qué archivo está llamando?

No tengo un archivo o una carpeta llamada "css" dentro de mi carpeta de Content .




Un poco tarde para la fiesta. Pero parece que nadie ha mencionado
bundling y StyleBundle de StyleBundle , así que ..

@Styles.Render("~/Content/css") 

llamadas en Application_Start() :

BundleConfig.RegisterBundles(BundleTable.Bundles);            

que a su vez llama

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new StyleBundle("~/Content/css").Include(
              "~/Content/bootstrap.css",
              "~/Content/Site.css"));
}

RegisterBundles() combina y minimiza efectivamente bootstrap.css & Site.css
en un solo archivo,

<link href="/Content/css?v=omEnf6XKhDfHpwdllcEwzSIFQajQQLOQweh_aX9VVWY1" rel="stylesheet">

Pero ..

<system.web>
  <compilation debug="false" targetFramework="4.6.1" />
</system.web>

solo cuando la debug se establece en false en Web.config .
De lo contrario, bootstrap.css & Site.css servirán individualmente.
No empaquetado, ni minificado:

<link href="/Content/bootstrap.css" rel="stylesheet">
<link href="/Content/Site.css" rel="stylesheet">



Como se define en App_start.BundleConfig, solo está llamando

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

Nada sucede incluso si eliminas esa sección.




Hice todo lo necesario para agregar paquetes a una web de MVC 3 (soy nuevo en la solución existente). Styles.Render no funcionó para mí. Finalmente descubrí que simplemente me faltaba un colon. En una página maestra: <%: Styles.Render("~/Content/Css") %> Todavía estoy confundido acerca de por qué (en la misma página) <% Html.RenderPartial("LogOnUserControl"); %> <% Html.RenderPartial("LogOnUserControl"); %> funciona sin el colon.




Related