13

私は次のコードを持っています:

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をロードしたいと思います。また、1つのバンドルとして保持し、バンドルの順序はそのままにしておきたいと思います。次のコードはエラーをスローします:

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.

1つの回避策は、それを3つのバンドルに分割することですが、それはバンドルの目的全体に反します。

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");

他の誰かがこれを解決したり、この動作を可能にするフレームワークを拡張したりしましたか?

4

2 に答える 2

0

あなたはただ使うことができます

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

ローカル css ファイル内の必要な場所

于 2013-01-05T03:53:43.030 に答える
0

これはまだ開発中だと思います。最近の SO の質問: ASP バンドルの絶対 URL を確認してください。

于 2013-02-07T00:40:35.660 に答える