捆绑不同文件夹中的样式表和脚本

时间:2017-01-15 07:07:17

标签: css asp.net-mvc bundle bundling-and-minification

在ASP.NET MVC5应用程序中,我有多个CSS和JS文件,我试图使用下面的代码捆绑它们

bundles.Add(new StyleBundle("~/myBundles/css").Include(
          "~/lib/css/nivo-slider.css",
          "~/css/core.css",
          "~/css/shortcode/shortcodes.css",
          "~/style.css",
          "~/css/responsive.css",
          "~/css/color/color-core.css",
          "~/css/custom.css",
          "~/myDefaultSS.css"
          ));

我在_Layout页面中使用它:

@Styles.Render("~/myBundles/css")

使用它时,我在下面的页面的hmlt源中看到了

<link href="/myBundles/css?v=xt5fim6H60Umm4DuM_5iVudeIEOkrcbgXzG0o3CHtlU1" rel="stylesheet"/>

使用此功能后,我的网页无法正常显示。我认为这是因为我正在捆绑来自不同目录的文件。是对的吗?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

捆绑样式时不要使用@import css指令。如果您发布了网站的发布版本,那么它就无法运行。如果您检查网络流量[F12],您会看到网络上找不到导入的css文件,因为优化不会用正确的路径替换@import网址。

因此,不要使用与导入的css文件捆绑或关闭捆绑优化并通过其他方式优化它们。

可以通过Web.Config中的以下行关闭优化:

<compilation debug="true" targetFramework="4.5"/>

此外,您可以在C#中使用此代码:

BundleTable.EnableOptimizations = false;

[Reference]