我的一些样式在开发和阶段使用 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 重写 URL?