asp.net mvc 4 - pages - ¿Por qué ResolveBundleUrl no funciona para carpetas personalizadas?(MVC Beta 4)
web forms c# tutorial (2)
En Application_Start
en Global.asax.cs
use BundleTable.Bundles.EnableDefaultBundles();
en lugar de BundleTable.Bundles.RegisterTemplateBundles();
Si observa la fuente de RegisterTemplateBundles
, puede ver que en realidad solo busca (y agrega) archivos js y css específicos. EnableDefaultBundles
por otro lado, es bastante similar a cuando agrega sus propios paquetes.
Desde una nueva aplicación web ASP.NET MVC 4 Beta, estoy reorganizando mis carpetas para que coincidan con el ejemplo VidPub.Web de Rob Conery
Específicamente, esto significa que la estructura de directorio final para el contenido se parece a esto
VidPub.Web | ---Public | |---Images |--- *.png |---javascripts |--- *.js |---stylesheets |----themes |---base |--- images |--- *.css |----site.css
Sin embargo, cuando cambio las siguientes líneas en _Layout.cshtml
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Content/css")"
rel="stylesheet"
type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Content/themes/base/css")"
rel="stylesheet"
type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Scripts/js")"></script>
a
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/stylesheets/css")"
rel="stylesheet"
type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/stylesheets/themes/base/css")"
rel="stylesheet"
type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl(
"~/Public/javascripts/js")"></script>
Termino con absolutamente nada en el HTML resultante.
<link rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" />
<script></script>
¿Por qué no está recogiendo los archivos en sus nuevas ubicaciones?
Parece que tiene que registrar su propio paquete cuando usa directorios no predeterminados. Agregué lo siguiente a Application_Start
y solucionó el problema
var bundle = new Bundle("~/Public/stylesheets/css", new CssMinify());
bundle.AddDirectory("~/Public/stylesheets", "*.css", true);
BundleTable.Bundles.Add(bundle);
bundle = new Bundle("~/Public/javascripts/js", new JsMinify());
bundle.AddDirectory("~/Public/javascripts", "*.js", true);
BundleTable.Bundles.Add(bundle);