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

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

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


person Kieren Johnstone    schedule 02.12.2012    source источник
comment
возможный дубликат ASP Пакеты CSS .NET MVC framework 4.5 не работают на хостинге   -  person slolife    schedule 25.05.2013
comment
Возможный дубликат ASP Пакеты CSS .NET MVC framework 4.5 не работают на хостинге   -  person Michael Freidgeim    schedule 18.01.2017


Ответы (3)


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

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

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

person Kieren Johnstone    schedule 02.12.2012
comment
Также обратите внимание, если файлы CSS относятся к изображениям или другим файлам, относящимся к CSS, убедитесь, что имя файла пакета находится где-то под папкой, содержащей фактический CSS. Например, ~/Content/myfolder/bundle, если CSS ниже Content/myfolder - person Kieren Johnstone; 07.12.2012
comment
У меня было два пакета: ~/Content/kendo (для css) и ~/bundles/kendo (для скриптов). Итак: ошибка 403. Когда я изменил имя одного из них - проблема исчезла. Спасибо. - person VikciaR; 22.05.2013
comment
что именно вы имеете в виду под названием самого пакета? - person Don Thomas Boyle; 21.08.2013
comment
@DonThomasBoyle, ты меня спрашиваешь? Я нигде не использую эту фразу - person Kieren Johnstone; 22.08.2013
comment
@KierenJohnstone извините за неконкретность, "Change the registered name of the bundle" что вы имеете в виду? - Я принял название пакета, который МЫ назначаем. Нравится (выделено жирным шрифтом) -› bundles.Add(new StyleBundle( ~/Content/css ).Include("~/Content/site.css")); - person Don Thomas Boyle; 22.08.2013
comment
имя моего пакета было ~/Content/css, а каталог /Content/css уже существовал. Я изменил имя пакета на ~/Content/cssScripts, и все стало хорошо. - person jhilden; 09.09.2014
comment
Точно. Похоже, это ошибка в пакете NuGet FontAwesome. - person wolfyuk; 17.10.2014
comment
Также в пакете select2 nuget. - person Tetsujin no Oni; 21.01.2015
comment
Это решило много головной боли для меня. @WolfyUK прав. Ошибка все еще сохраняется в 2018/19... - person LuqJensen; 30.12.2018
comment
Это то, что сработало для меня. Решение состоит в том, чтобы изменить зарегистрированное имя пакета, чтобы оно не совпадало с тем, что существует в файловой системе. - person Matt Slavicek; 04.03.2021

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

person mohas    schedule 07.11.2015

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

("bundles/css") 

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

person Usman    schedule 26.10.2018