捆绑CSS CDN

时间:2017-04-23 13:28:41

标签: asp.net webforms bundling-and-minification

在应用缩小和捆绑之前,我有一个工作网站。我没有写原始的CSS。问题源于用于引入Google字体的三个@import url语句。

为了解决这个问题,我决定从相关的CSS文件中删除@import url,并在BundleConfig.cs类中单独添加它们。但是,我无法弄清楚实现这一目的的语法:

public static void RegisterBundles(BundleCollection bundles)
{
    ....
    bundles.UseCdn = true;
    var templateOriginalPath1 
        = "http://fonts.googleapis.com/css?family=Lobster";
    var templateOriginalPath2 = 
        "http://fonts.googleapis.com/css?family=Oswald:400,700,300";
    var templateOriginalPath3 
        = "http://fonts.googleapis.com/css?family
        =Ubuntu:300,400,500,700,300italic,400italic,700italic";
    ....

    bundles.Add(new StyleBundle("~/bundles/templateOriginal1",
        templateOriginalPath1));
    bundles.Add(new StyleBundle("~/bundles/templateOriginal2",
        templateOriginalPath2));
    bundles.Add(new StyleBundle("~/bundles/templateOriginal3",
        templateOriginalPath3));
}

1 个答案:

答案 0 :(得分:0)

显然,语法是正确的。有一个known bug会导致优化框架在出现包含@import url语句的CSS样式表时出现阻塞。

变通方法太值得了。希望这对其他人有用。我首先提到了这个bug here

您必须检查开发人员工具(我使用Firefox Developer Browser)中的响应标头,以查看错误的详细信息:

/* Minification failed. Returning unminified contents.
(1409,1): run-time error CSS1019: Unexpected token, found '@import'
(1409,9): run-time error CSS1019: Unexpected token, 
    found '"http://fonts.googleapis.com/css?family=Lobster"'
(1409,57): run-time error CSS1019: Unexpected token, found ';'
(1410,1): run-time error CSS1019: Unexpected token, found '@import'