Почему в моем приложении ASP MVC4 перенаправляется пакет ресурсов?

Я использую RC, и я проверил все в актуальном состоянии через NuGet. В моем global.asax.cs я получил:

BundleTable.Bundles.AddDefaultFileExtensionReplacements();
BundleTable.Bundles.AddDefaultIgnorePatterns();
BundleTable.Bundles.AddDefaultFileOrderings();

Bundle scripts = new Bundle("~/Scripts");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/css");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);

Я пробовал несколько разных конфигураций без каких-либо улучшений.

Тогда в моем макете я получил:

<link href="@BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts")"> </script>

Когда страница загружается, ее URL выглядят прилично:

<link href="/Content/css?v=QAsFYXHCbnaU70oGVxpgi9py9iKQrT9C4BVNdHa7xoI1" rel="stylesheet" type="text/css" />

Но этот URL перенаправляет на:

/Content/css/

Что возвращает ошибку 404 not found...

перенаправление пакетов

У кого-нибудь есть идеи?

2 ответа

Решение

Логика связующего модуля, которая решает, обрабатывать или нет запрос, не будет обрабатывать запросы к существующим файлам или каталогам. Поэтому ваши запросы к пакетам не работают, если они находятся на том же виртуальном пути, что и существующий каталог (или файл).

Виртуальный путь ~/Scripts и ~ / Content / css уже существует на диске, поэтому вам нужно сделать их виртуальными URL-адресами, скажем, ~/Scripts/js и ~ / Content / styles, и все в порядке.

Bundle scripts = new Bundle("~/Scripts/js");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/styles");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);

Также в MVC4 конфигурация "Маршрутизация", "Связки" и "Фильтры" была перенесена в

~/App_Start/(RouteConfig, BundleConfig, FilterConfig).cs

так что проверьте, что у вас есть, если так, то напишите свои конфигурации там.

Другие вопросы по тегам