Файлы 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.