2015-05-28 1 views
10

фон: Я проникаю в ASP.NETMVC 5 приложения (разработанном в Windows 8.1, VS2013 сообществе, .NET 4.5.1, MySql пользовательского членство и поставщик ролей) проект в MonodevelopUbuntu 14.4, Monodevelop, Mono).Stylesheets и скрипты пучков не работают в 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, я вижу только каталоги

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

+3

Вы отлаживаете и имеете '<компиляция debug =" true "/>' или 'BundleTable.EnableOptimizations = false;'? – rageit

+0

@rageit - Я отлаживаю и не могу видеть 'BundleTable.EnableOptimizations' в моем проекте. Это что-то в web.config или BundleConfig? Если да, то как я могу его использовать? – xameeramir

+1

У вас есть Microsoft.Web.Infrastructure.dll в вашем каталоге bin? Если да, попробуйте удалить его. Mono имеет свою собственную реализацию, которую он будет использовать, если этот файл отсутствует. –

ответ

6

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

BundleTable.EnableOptimizations = true; 

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

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

+0

рад, что я мог бы помочь :) –

1

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

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

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

"~/Content/site.css" 

Изменить что

"~/Content/Site.css" 

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