Файлы CSS не отображаются на сервере - ошибка ASP.NET MVC Bundles. 403 - Forbidden: Отказано в доступе
Приложение My MVC 4 отлично работает на моем локальном компьютере.
Однако файлы CSS не работают после публикации (не влияют на макет сайта).
Я вижу CSS, файлы находятся на сервере.
Когда я смотрю на исходный код, я вижу
<link href="/Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1" rel="stylesheet"/>
где, как на моем локальном компьютере, исходный код отображается как
<link href="/Content/css/myFile.css" rel="stylesheet"/>
<link href="/Content/css/myFile02.css" rel="stylesheet"/>
Итак, в представлении исходного кода на сервере я нажал на Content/css?v=fxCdHAOgPDvcROxkMfEwGQggO9uCfzckN3PaN8BOIzI1
, и браузер перевел меня на 403 - Запрещено: доступ запрещен.
Я добавляю файлы CSS с классом BunldeConfig.cs
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
"~/Scripts/1.9.1.js",
"~/Scripts/jTools.js",
"~/Scripts/script.js"
));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Css/website.css",
"~/Content/Css/banner.css",
"~/Content/Css/reusable.css",
"~/Content/Css/lists.css",
"~/Content/Css/tooltip.css",
"~/Content/Css/overlay.css"
));
}
}
Мой вопрос заключается в том, что это не проблема ИТ-сервера с сервером (до недавнего времени он работал нормально), что-то не так с моим кодом?
Ответы
Ответ 1
Ваша проблема заключается в том, что вы используете ~/Content/css
как псевдоним пакета в new StyleBundle("~/Content/css")
, , пока этот путь действительно существует.
Поэтому, когда вы запрашиваете <link href="/Content/css?...>
, вы, по сути, запрашиваете листинг каталога, и это запрещено.
Попробуйте использовать что-то еще, например new StyleBundle("~/Content/styles")
.
ПРИМЕЧАНИЕ. Если вы используете что-то вроде ~/Content/styles
как псевдоним, у вас могут быть проблемы с относительными URL-адресами в ваших файлах .css
. Это может показаться странным, но вы можете лучше использовать что-то вроде ~/Content/Css/someAlias
Ответ 2
В разделе <system.web>
вашего корневого файла web.config режим отладки не включен. при публикации приложения он не включает атрибут отладки. Таким образом, вы включаете следующий код:
<compilation debug="true" targetFramework="4.5">
вместо <compilation targetFramework="4.5">
в файле web.config.
Для получения дополнительной информации Вы можете следовать Эта ссылка.
Ответ 3
Если у вас действительно есть какая-либо физическая папка css
внутри папки Content
, возникает эта проблема. Чтобы устранить ее, либо удалите физическую папку css
, либо переименуйте ее в имя any-other
.