在我的MVC5.1项目中,我使用捆绑和缩小与CSS重写转换:
styleBundle.Include("~/Content/Site.css",new CssRewriteUrlTransform()); bundles.Add(styleBundle);
CssRewriteUrlTransform相对于站点根目录转换图像路径。但是,当我将图像嵌入到css中时:
span.file { background-image: url(data:image/png;base64,iVBORw0KGg+...2AAAAElFTkSuQmCC); }
这正在被翻译成
span.file { background-image: url(http://localhost:52253/Content/data:image/png;base64,iVBORg...mCC); }
显然〜/ Content / data:image / png; base64 …不存在。
任何方式来阻止这种情况发生,除了更新CSS文件以外不包括嵌入图像?或分离成不同的CSS文件,其中使用实际的URL和URL转换此文件。另一个CSS只有嵌入的图像。
解决方法
废弃这个问题。这是一个已知的错误。目前的工作是通过url将您的CSS分离成嵌入的图像和图像。
为这些工作项目投票:https://aspnetoptimization.codeplex.com/workitem/88和https://aspnetoptimization.codeplex.com/workitem/108