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

Stylesheets and scripts bundles not working in Mono

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

在我的~/App_Start/BundleConfigclass

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>

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

问题: 当我在浏览器中查看源代码时,我没有看到包正在呈现:

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

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

此捆绑在 Windows 上运行良好,但在 Ubuntu 上我只看到目录

我做错了什么?

在您的 BundleConfig 文件中添加以下内容:

BundleTable.EnableOptimizations = true;

然后切换到释放模式。

这应该可以解决问题

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

如果始终启用捆绑(BundleTable.EnableOptimizations = true;and/or 在发布模式下构建)是不可接受的,请考虑以下事项:

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

"~/Content/site.css"

将其更改为

"~/Content/Site.css"

请注意,在单声道中,文件名的大小写非常重要,而在 windows 中则不重要。因此,您的 html 需要使用小写字母 site.css 或者您的包需要以大写字母开头。