Пакет в стиле MVC4, дающий 403

99

Когда объединение / минификация включена, некоторые из моих пакетов, похоже, имеют недопустимый URL-адрес в браузере (заканчивающийся на /), а IIS выдает запрещенную ошибку 403, как будто пытаясь перечислить содержимое папки.

Нет никакой разницы в том, как настроены мои пакеты - это не .min.css, права доступа правильные и т. Д.

Кирен Джонстон
источник

Ответы:

233

Мои пакеты были зарегистрированы как пути, соответствующие реальной папке в решении, например ~/Content/forum.

Это отлично работает, когда объединение отключено (пакет включен правильно!), Но не когда включен пакет.

Решение состоит в том, чтобы изменить зарегистрированное имя пакета, чтобы оно отличалось от всего, что существует в файловой системе.

Кирен Джонстон
источник
20
Обратите внимание также , если CSS файлы относятся к образности или других файлов относительно CSS, убедитесь , что пакет имя файла является то под папку , содержащую фактические CSS. Например, ~/Content/myfolder/bundleесли CSS нижеContent/myfolder
Кирен Джонстон
1
У меня было два пакета: ~ / Content / kendo (для css) и ~ / bundles / kendo (для скриптов). Итак: ошибка 403. Когда я сменил имя одного из них - проблема исчезла. Спасибо.
VikciaR
1
@KierenJohnstone, извини, что не стал конкретным, "Change the registered name of the bundle"что ты имеешь в виду? - Я предположил название пакета, который мы назначаем. Like (выделенная жирным шрифтом) -> bundles.Add(new StyleBundle( «~ / Content / css» ).Include("~/Content/site.css"));
Дон Томас Бойл
1
На месте. Похоже, это ошибка в пакете nuget FontAwesome.
wolfyuk
1
Также в пакете select2 nuget.
Tetsujin no Oni
3

В моем случае пакет был указан как каталог, @Scripts.Render("~/scripts")поэтому IIS не знал, как обслуживать фактический файл js, я изменил имя пакета, чтобы оно представляло файл javascript, @Scripts.Render("~/scripts.js")и это исправило его. То же самое и с моим набором стилей.

мохас
источник
3

Проблема заключается в соглашении об именах, которое ваше имя пакета должно быть

("bundles/css") 

Это решило мою проблему.

Усмань
источник