【发布时间】:2015-01-25 02:38:10
【问题描述】:
我的一些样式在开发和阶段使用 url(../img/sprites/main_sprite.png) 到本地资源。但是在生产中,我使用 CDN,我所有的静态资源都在上面。是否可以转换捆绑包,以便将 .css 中的所有 url 替换为 cdn 路径?
例如:
.Logo {
background-image: url(../img/sprites/main_sprite.png);
}
但是,在生产中我希望它是
.Logo {
background-image: url(http://MyCdn.com/img/sprites/main_sprite.png);
}
我已经使用 CssRewriteUrlTransform() 将我的相对路径重写为绝对路径,所以资源捆绑后可以找到。
我想把这个类扩展成这样
public string Process(string includedVirtualPath, string input)
{
if (_useCdn)
{
return new CssRewriteUrlTransform().Process(_cdn + VirtualPathUtility.ToAbsolute(includedVirtualPath), input);
}
else
{
return new CssRewriteUrlTransform().Process("~" + VirtualPathUtility.ToAbsolute(includedVirtualPath), input);
}
}
但是Process必须有VirtualPath,否则我追加CDN路径时会抛出异常。
有没有这个类的等价物来重写带有CDN的URLS?
【问题讨论】:
标签: asp.net asp.net-mvc bundling-and-minification asp.net-bundling