样式表和脚本包在Mono中不起作用

时间:2015-05-28 06:15:33

标签: javascript asp.net-mvc css3 mono bundling-and-minification

后台:我正在迁移ASP.NET MVC 5个应用程序(在Windows 8.1, VS2013社区开发,.NET 4.5.1MySql自定义成员资格和角色提供者)项目MonodevelopUbuntu 14.4MonodevelopMono)。

在我的~/App_Start/BundleConfig班级

public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true;

     bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));

        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-*"));
    }

在我的~/Views/Shared/_Layout.cshtml视图中

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")

在我的Web.Config

<add namespace="System.Web.Optimization" />

另外

<compilation defaultLanguage="C#" debug="false"> </compilation>

同样从bin目录中删除Microsoft.Web.Infrastructure.dll

问题:我在浏览器中查看来源时,我看不到捆绑包已呈现:

链接指向目录,它应显示目录中的文件

<link href="/Content/css" rel="stylesheet"/>
<script src="/bundles/modernizr"></script>

这个捆绑在Windows上运行得非常好,但在Ubuntu上,我只看到目录

我在这里做错了什么?

2 个答案:

答案 0 :(得分:6)

BundleConfig 文件中添加以下内容:

BundleTable.EnableOptimizations = true;

然后切换到发布模式。

这应该可以解决问题

答案 1 :(得分:1)

我今天刚刚遇到过这个问题。 Mihai-Tibrea的答案确实有效,但它导致我的目的无法接受。

如果始终无法接受捆绑(BundleTable.EnableOptimizations = true;和/或构建在发布模式下),请考虑以下事项:

在BundleConfig.cs中找到这样一行:

"~/Content/site.css"

将其更改为

"~/Content/Site.css"

请注意,在mono中,文件名的情况非常重要,而在Windows中则不重要。所以要么你的html需要使用小写的site.css,要么你的bundle需要以大写字母开头。