Asp.net mvc 4 在一个样式包中使用多个CDN链接

Asp.net mvc 4 在一个样式包中使用多个CDN链接,asp.net-mvc-4,Asp.net Mvc 4,我有以下代码: 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

我有以下代码:

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");
是否有其他人设法解决了这个问题,或者设法扩展了允许这种行为的框架?

您可以使用

@import url("http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600");

如果您希望它出现在本地css文件中

我认为这仍在开发中,请检查最近的问题:

这样做的问题是@import会减慢页面的速度,直到父CSS完全下载后,页面才会被处理。这就破坏了将文件捆绑在一起的整个意义