tutorial net mvc mezclar ejemplos asp asp.net-mvc asp.net-mvc-5 web-optimization

asp.net-mvc - net - web forms c# ejemplos



No se está llamando a CssRewriteUrlTransform (3)

Acabo de crear una nueva aplicación MVC 5 en VS 2013 RTM. Por alguna razón, la url de la imagen de fondo en mis archivos CSS no se estaba transformando.

Por lo tanto, para solucionar el problema, creé mi contenedor personalizado CssRewriteUrlTransform. Y encontré que mi punto de ruptura no está siendo llamado.

Esto es lo que tengo en mi BundleConfig.cs

using System.Web.Optimization; namespace Utilities.Web { public class BundleConfig { private const string JQUERY_CDN_URL = "//code.jquery.com/jquery-1.10.1.min.js"; public static void RegisterBundles(BundleCollection bundles) { bundles.UseCdn = true; BundleTable.EnableOptimizations = true; bundles.Add(new StyleBundle("~/css/coming-soon") .Include("~/Content/Site/coming-soon.css", new CssRewriteUrlTransformWrapper())); bundles.Add(new ScriptBundle("~/js/coming-soon") .Include("~/Scripts/jquery.placeholder.js") .Include("~/Scripts/Site/coming-soon.js")); bundles.Add(new ScriptBundle("~/js/jquery", JQUERY_CDN_URL) { CdnFallbackExpression = "window.jQuery" }.Include("~/Scripts/jquery-{version}.js")); } } public class CssRewriteUrlTransformWrapper : IItemTransform { public string Process(string includedVirtualPath, string input) { return new CssRewriteUrlTransform().Process(includedVirtualPath, input); } } }


Me hubiera gustado poner esto como un comentario debajo de la respuesta marcada. Pero no tengo derecho a hacerlo. La respuesta me ayudó. También encontré otra solución para ello. En el método de configuración de paquete agregue esto:

  • BundleTable.Bundles.FileExtensionReplacementList.Clear ();

Esto evitará que el archivo * .min.css se incluya automáticamente. Y la transformación será llamada.

Saludos Hans


Parece que la transformación no se ejecuta si tiene la versión minificada del CSS. Elimine el archivo .min.css y debería comenzar a funcionar.


Tengo el mismo problema. Сlass CssRewriteUrlTransform no funciona como lo necesito. Miré el código fuente AspNetWebOptimization y encontré que cuando Bundle encuentra un archivo con ".min", crea un nuevo BundleFile sin transformaciones del BundleFile original. La mejor solución es desactivar FileExtensionReplacement para estos paquetes:

var bundle = new StyleBundle("~/bundles/css/font-awesome") .Include("~/Content/font-awesome.css", new CssRewriteUrlTransform()); bundle.EnableFileExtensionReplacements = false; bundles.Add(bundle);