Я запускаю приложение на порт приложения, написанный на MVC4.
Комплект файлов CSS не работает. На моем локальном компьютере в режиме отладки я вижу код приложения и вижу файлы. Приложение работает, как и ожидалось.
<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>
Когда я загружаю приложение в Appharbor, я вижу пакет в коде, но приложение не работает.
<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>
Когда я просматриваю эту ссылку, href
я получаю 403 - Запрещено: доступ запрещен.
Как решить эту проблему?
asp.net-mvc
asp.net-mvc-4
appharbor
asp.net-optimization
Рикардо Поло Харамильо
источник
источник
Ответы:
Я предполагаю, что путь
Content/css
существует на диске в вашем приложении. В этом случае IIS будет обрабатывать запрос, а не MVC.Убедитесь, что виртуальный путь для пакета (параметр конструктора StyleBundle) не совпадает с папкой в файловой системе.
Из комментариев:
источник
Эта проблема по умолчанию .NET не «обрабатывает» запросы с расширением .js или .css.
Есть два исправления для этого (вам нужно сделать только один)
A) Удалите расширения из имен пакетов. (рекомендуется). Это заставит .NET обработать запрос и запустить его через BundleModule.
Б) Добавьте это в ваш web.config в разделе system.webServer, что заставит .NET выполнять запросы .js и .css через BundleModule.
Большой привет Рэю Моро, который выяснил реальную причину и поделился ею со мной в моем блоге: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
источник
Со мной тоже случилось, когда я попытался развернуть свое приложение ASP.NET MVC в AppHarbor.
У меня был пакет стилей с именем
и структура папок была
Просто изменив имя пакета на
"~/Content/bootstrap-css"
мою проблему, был восстановлен.источник
Я знаю, что я опоздал на этот вопрос на 4 года, но это сработало для меня.
источник
Ошибка 403 устранена. Вот подробное объяснение и решение проблемы 403.
Решение продемонстрировано для пакета CSS. Однако это также относится и к JavaScript.
http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved
В двух словах, убедитесь, что виртуальный путь
[Script | Style]Bundle("~/content/[script | css]")
не соответствует папке в файловой системе (напримерC:\approot\Content\[script | css]
) вместо[Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")
источник
Я решил проблему, добавив ниже строку кода в классе BundleConfig
источник
То, что я делаю, очень просто,
Я добавляю "js" в конце ScriptBundle следующим образом: new ScriptBundle ("~ / bundles / appjs") И добавляю "css" в конце StyleBundle примерно так: new StyleBundle ("~ / content / appcss")
Мои имена папок никогда не заканчиваются на «js» или «css».
Это должно сделать это.
источник
Это относится и к «классу ScriptBundle», убедитесь, что «имя параметра» для конструктора не соответствует пути в файловой системе веб-приложения. Помните, что IIS попытается обработать файл / запрос.
источник
Проблема также может быть связана с зашифрованным файлом. Это произошло со мной, когда я скачал BootStrap и использовал предоставленные файлы. Они показали зеленый цвет в проводнике Windows и отлично работали в Visual Studio, но при развертывании я получил ошибку 403.
Вы можете увидеть, зашифрованы ли они, перейдя в свойства, затем в дополнительные свойства и есть зашифрованный флажок.
Снимите флажок, и это больше не будет проблемой.
источник
У меня та же проблема с этой ошибкой (403 Forbidden). В моем случае причина в том, что прокси-сервер в моей организации блокирует мой файл css. Имя файла CSS соответствует одному из правил блока.
источник
Я обнаружил, что файл bootstrap.css не находится в папке содержимого, поэтому я искал его в пакетах и вставил туда ... он работал!
источник