css 的捆绑包工作不正常

Bundle works wrong for css

我在布局中包含这些 css 个文件

<!-- Dropdown Menu -->
<link rel="stylesheet" href="~/Content/superfish.css">
<!-- Date Picker -->
<link rel="stylesheet" href="~/Content/bootstrap-datepicker.min.css">
<!-- CS Select -->
<link rel="stylesheet" href="~/Content/cs-select.css">
<link rel="stylesheet" href="~/Content/cs-skin-border.css">
<!-- Themify Icons -->
<link rel="stylesheet" href="~/Content/themify-icons.css">
<!-- Flat Icon -->
<link rel="stylesheet" href="~/Content/flaticon.css">
<!-- Icomoon -->
<link rel="stylesheet" href="~/Content/icomoon.css">
<!-- Flexslider  -->
<link rel="stylesheet" href="~/Content/flexslider.css">
<!-- Style -->
<link rel="stylesheet" href="~/Content/style.css">

现在我想在 bundle 中移动这些文件,所以我这样做了:

public static void RegisterBundler(BundleCollection bundles)
    {
        bundles.Add(new StyleBundle("~/Content/style.css").Include(
            "~/Content/superfish.css",
            "~/Content/bootstrap-datepicker.min.css",
            "~/Content/cs-select.css",
            "~/Content/cs-skin-border.css",
            "~/Content/themify-icons.css",
            "~/Content/flaticon.css",
            "~/Content/icomoon.css",
            "~/Content/flexslider.css",
            "~/Content/style.css"
            ));

        BundleTable.EnableOptimizations = true;
    }

在我的布局中:

@Styles.Render("~/Content/style.css")

但是从这个:

它是这样的:

当我打开这个新的 css 文件(来自浏览器开发工具)时,一些 css 代码丢失了。特别是第一个文件丢失了(superfish.css),但它与其他文件在同一个文件夹中

我做错了什么?

它可能会混淆并呈现实际的 style.css 而不是包。尝试将包的名称更改为其他名称,即 new StyleBundle("~/Content/main.css")。此外,您可能使用了错误的渲染 - 它应该是 @Styles.Render("~/Content/style")(注意删除的 .css 部分)

捆绑是 ASP.NET 4.5 中的一项新功能,可以轻松地将多个文件合并或捆绑到一个文件中。

Bundle class Include 方法采用字符串数组,其中每个字符串都是资源的虚拟路径。

像下面这样更改您的代码:

注意:去掉StyleBundle()里面的文件扩展名

public static void RegisterBundler(BundleCollection bundles)
    {
       //

        bundles.Add(new StyleBundle("~/Content/style").Include(
            "~/Content/superfish.css",
            "~/Content/bootstrap-datepicker.min.css",
            "~/Content/cs-select.css",
            "~/Content/cs-skin-border.css",
            "~/Content/themify-icons.css",
            "~/Content/flaticon.css",
            "~/Content/icomoon.css",
            "~/Content/flexslider.css",
            "~/Content/style.css"
            ));

        BundleTable.EnableOptimizations = true;
    }

在布局中:调用如下

@Styles.Render("~/Content/style")

希望对您有所帮助