我有以下代码:
bundles.UseCdn = true;
var fontPath = "http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600";
var commonCss = new StyleBundle("~/css/common").Include(
"~/Content/less/myless.less",
"~/Content/css/opensans.css", // local copy of the font path above
"~/Content/less/mylessoverrides.less",
"~/Content/css/font-awesome.css");
commonCss.Transforms.Add(new CssMinify());
bundles.Add(commonCss);上面的代码运行得很好。但是,我想从上面的CDN链接加载opensans.css。我也希望将其作为一个捆绑包,并保持捆绑包的顺序不变。下面的代码将抛出一个错误:
var commonCss = new StyleBundle("~/css/common").Include(
"~/Content/less/myless.less",
"http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600",
"~/Content/less/mylessoverrides.less",
"~/Content/css/font-awesome.css");
The URL 'http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600'
is not valid. Only application relative URLs (~/url) are allowed.一种解决方法是将其分成三个包,但这将与包的整个目的背道而驰:
var commonCss1 = new StyleBundle("~/css/common1").Include(
"~/Content/less/myless.less");
var commonCss2 = new StyleBundle("~/css/common2", fontPath).Include(
"~/Content/css/opensans.css");
var commonCss3 = new StyleBundle("~/css/common3").Include(
"~/Content/less/mylessoverrides.less",
"~/Content/css/font-awesome.css");最终的解决方案是这样做:
var commonCss = new StyleBundle("~/css/common").Include(
"~/Content/less/myless.less",
new { fontPath, "~/Content/css/opensans.css" },
"~/Content/less/mylessoverrides.less",
"~/Content/css/font-awesome.css");有没有其他人设法解决这个问题,或者设法扩展允许这种行为的框架?
发布于 2013-01-05 11:53:43
你可以直接使用
@import url("http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600");您希望它在本地css文件中的位置
发布于 2013-02-07 08:40:36
我认为这仍在开发中,请查看最近的SO问题:Absolute URL in ASP bundle
https://stackoverflow.com/questions/12715628
复制相似问题