ResolveBundleUrl не разрешает все файлы? - PullRequest
11 голосов
/ 09 марта 2012

Я новичок в MVC, поэтому подумал, что начну новый проект и опробую некоторые новые функции в MVC4. У меня есть два файла CSS в моем каталоге Content, normalise_mini и site.css. Когда я использую следующий код:

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />

Требуется только мой site.css файл, а не файл нормализации. В моем приложении запускается следующее:

protected void Application_Start()
{

    // Remove all other view engines except razor:
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());

    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);

    BundleTable.Bundles.RegisterTemplateBundles();
    BundleTable.Bundles.EnableDefaultBundles();
}

Нужно ли создавать пакет для каждого файла CSS (как это делает этот человек)? Или он должен просто найти все файлы CSS автоматически (что я ожидаю, по умолчанию). Возможно, стоит отметить, что я начал этот проект как пустой веб-сайт на основе движка Razor (который на самом деле не был пустым: /)

Заранее спасибо


Обновление

Согласно опубликованной ссылке, мне нужно закомментировать строку, которая регистрирует пакеты шаблонов. Например:

protected void Application_Start()
{

    // Remove all other view engines except razor:
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());

    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);

    //BundleTable.Bundles.RegisterTemplateBundles();  // This is not needed
    BundleTable.Bundles.EnableDefaultBundles();
}

Теперь это работает. Я думаю, что две линии должны сосуществовать без каких-либо проблем. Я предполагаю, что это по дизайну, но это плохой дизайн?

Ответы [ 2 ]

10 голосов
/ 09 марта 2012

Кто-то еще уже ответил на этот вопрос:

http://forums.asp.net/t/1776599.aspx/1?MVC+4+0+Bundling+Minification+not+working+

UPDATE:

Кто-то выразил обеспокоенность тем, что ссылки может быть недостаточно для ответа на вопрос. Хотя я по-прежнему считаю, что кто-то, посещающий эту страницу, должен прочитать связанный поток, краткий ответ - удалить строку BundleTable.Bundles.RegisterTemplateBundles () из Application_Start () и заменить ее на BundleTable.Bundles.EnableDefaultBundles ()

0 голосов
/ 29 августа 2012

Примечание: EnableDefaultBundles был удален с версии 1.0.0 RTM Optmization, вы все равно можете получить эквивалентную функциональность, настроив ваши собственные DynamicFolderBundles.Но в целом это может вызвать проблемы (как правило, в файлах, которые не сохраняются при включении * .js, есть зависимости), поэтому мы перешли к явной настройке комплекта и удалили EnableDefaultBundles.

Для получения самых современных документов / учебников: Документация Codeplex

...