- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了和许多人一样的问题,当我捆绑 CSS 样式表时,我的图像无法解析。
现在我发现一些 SO-Answers 建议使用 new CssRewriteUrlTransform()
作为新 StyleBundle-Object 的“Include”方法的第二个参数。 This one for example
我使用 IncludeDirectory 是因为我有一个目录,我可以在其中添加文件,而无需将它们注册到某个地方(并且它们是我不想列出的许多文件)。但 IncludeDirectory 没有覆盖来传递 CssRewriteUrlTransform-Object:
不起作用: bundles.Add(new StyleBundle("~/bundles/css/directives").IncludeDirectory("~/app/directives", "*.css “,真));
我也尝试过:
StyleBundle sb = new StyleBundle();
sb.Transforms.Add(new CssRewriteUrlTransform());
但是 Transforms 的类型为 IBundleTransform,我正在尝试传递 IItemTransform。
关于如何做到这一点有什么建议吗?
最佳答案
由于我没有找到更好的答案,我将发布我的解决方案(感觉更像是一种解决方法):
public class BundleConfig {
private class CssRewriteUrlTransformWrapper : IItemTransform {
public string Process(string includedVirtualPath, string input) {
//see https://stackoverflow.com/questions/19765238/cssrewriteurltransform-with-or-without-virtual-directory
return new CssRewriteUrlTransform().Process("~" + VirtualPathUtility.ToAbsolute(includedVirtualPath), input);
}
}
private static string MakeVirtualPath(string fromPhysPath, string withVirtualPath) {
var res = fromPhysPath.Replace("\\", "/");
var idx = res.IndexOf(withVirtualPath.Replace("~", ""));
res = "~" + res.Substring(idx);
return res;
}
private static StyleBundle CreateStyleBundleForDir(string virtualPath) {
StyleBundle res = new StyleBundle(virtualPath + "/bundle");
string[] cssFilesPhysical = Directory.GetFiles(HttpContext.Current.Server.MapPath(virtualPath), "*.css", SearchOption.AllDirectories);
List<string> cssFilesVirtual = new List<string>();
foreach (var file in cssFilesPhysical) {
res.Include(MakeVirtualPath(file, virtualPath), new CssRewriteUrlTransformWrapper());
}
return res;
}
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add(CreateStyleBundleForDir("~/app/custom"));
}
}
我愿意接受建设性的批评:)
关于ASP.NET MVC : StyleBundle IncludeDirectory & CssRewriteUrlTransform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36183400/
bundles.Add(new StyleBundle("~/a/b/c") .Include("~/Content/font-awesome.css", new CssRewriteUrlT
我们在我们的站点中使用 MVC 捆绑,CssRewriteUrlTransform 确保图像 url 从动态捆绑 css 文件中工作。 但这仅在不使用虚拟目录时有效,即 http://localhos
我刚刚在 VS 2013 RTM 上创建了一个新的 MVC 5 应用程序。 由于某种原因,我的 CSS 文件中的背景图片 url 没有被转换。 所以,为了调试这个问题,我创建了我的自定义 CssRew
我遇到了和许多人一样的问题,当我捆绑 CSS 样式表时,我的图像无法解析。 现在我发现一些 SO-Answers 建议使用 new CssRewriteUrlTransform() 作为新 Style
我正在尝试在我的 bundleconfig 中的一个包中使用 CssRwriteUrlTransform,但我一直收到缺少参数的错误,这就是我所拥有的: bundles.Add(new StyleBu
我是一名优秀的程序员,十分优秀!