Пакеты стилей и скриптов, не работающие в Mono

Фон: Я переношу приложение ASP.NET MVC 5 (разработанное в Windows 8.1, VS2013 Сообщество, .NET 4.5.1, MySql пользовательский член и поставщик ролей) для Monodevelop ( в Ubuntu 14.4, Monodevelop, Mono).

В моем классе ~/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>

Также Microsoft.Web.Infrastructure.dll удаляется из каталога bin.

Проблема: Я не вижу, чтобы пакеты отображались при просмотре источника в браузере:

Ссылки направляются в сторону каталогов, он должен показывать файлы в каталогах

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

Этот пакет работает очень хорошо в Windows, но на Ubuntu я вижу только каталоги

Что я здесь делаю неправильно?

Ответ 1

Внутри вашего файла BundleConfig добавьте следующее:

BundleTable.EnableOptimizations = true;

Затем переключитесь в режим освобождения.

Это должно сделать трюк

Ответ 2

Я только что наткнулся на эту проблему сегодня. Ответ Михай-Тибре действительно работает, но это приводит к неприемлемым требованиям для моих целей.

Если всегда включить связывание (BundleTable.EnableOptimizations = true и/или построить в режиме выпуска), недопустимо считать следующее:

В BundleConfig.cs найдите такую ​​строку:

"~/Content/site.css"

Измените это на

"~/Content/site.css"

Обратите внимание, что в моно случае очень важны имена файлов, в то время как это не важно в Windows. Таким образом, либо ваш html должен использовать нижний регистр site.css, либо ваш пакет должен начинаться с заглавной буквы.