CSS 文件未显示在服务器上 - ASP.NET MVC 捆绑错误。 403 - 禁止:访问被拒绝

Posted

技术标签:

【中文标题】CSS 文件未显示在服务器上 - ASP.NET MVC 捆绑错误。 403 - 禁止:访问被拒绝【英文标题】:CSS files are not showing on server - ASP.NET MVC Bundles error. 403 - Forbidden: Access is denied 【发布时间】:2014-04-06 15:04:09 【问题描述】:

我的 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 - Forbidden: Access is denied.

我正在添加带有 BunldeConfig.cs 类的 CSS 文件

    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"
                ));


        
    

我的问题是,假设这不是服务器的 IT 问题(直到最近它一直运行良好)我的代码有问题吗?

【问题讨论】:

ASP.NET MVC framework 4.5 CSS bundles does not work on the hosting的可能重复 【参考方案1】:

您的问题是您在new StyleBundle("~/Content/css") 中使用~/Content/css 作为捆绑别名,而此路径实际存在

因此,当您请求 &lt;link href="/Content/css?...&gt; 时,您实际上是在请求目录列表,这是被禁止的。

尝试使用其他内容,例如 new StyleBundle("~/Content/styles")

注意:如果您使用 ~/Content/styles 之类的别名作为别名,您的 .css 文件中的相对 URL 可能会出现问题。这可能看起来很奇怪,但你最好使用~/Content/Css/someAlias

【讨论】:

叹息 - 我实际上知道这一点,大约 2 年前......当你停止使用东西时你会忘记什么很奇怪。谢谢,完美解决 不客气。一个小建议,供以后参考。如果您将标题更改为 ASP.NET MVC Bundles error. 403 - Forbidden: Access is denied. 之类的名称,对其他人会更有帮助 我遇到了同样的问题。我将捆绑包重命名为 并将我的母版页重命名为 一切都很好 从~/Content/css 重命名为~/Content/someothername 对我有用。谢谢【参考方案2】:

在您的根 web.config 文件的&lt;system.web&gt;部分中,不包括调试模式。当您发布应用程序时,它不包含调试属性。所以你包括以下代码:

&lt;compilation debug="true" targetFramework="4.5"&gt; 而不是 web.config 文件中的&lt;compilation targetFramework="4.5"&gt;

更多信息您可以关注This Link。

【讨论】:

这解决了症状,但没有解决原因。正确答案请参考@lalibi 的回答。【参考方案3】:

如果您实际上在Content 文件夹内有任何物理文件夹css,则会出现此问题。要解决此问题,请删除物理css 文件夹或将其重命名为any-other 名称。

【讨论】:

以上是关于CSS 文件未显示在服务器上 - ASP.NET MVC 捆绑错误。 403 - 禁止:访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

忽略 ASP.net 中的 Javascript、CSS 和图像文件路由

来自 FTP 的图像未显示在 asp.net 核心的 HTML 页面上

CSS 未应用于部署在 IIS 上的 ASP.NET MVC 应用程序

在 asp.net 回发期间触发 javascript(以显示 css 加载器/微调器)

ASP.NET Razor Pages JavaScript 文件返回未定义的错误

ASP.NET 核心 CORS 标头未显示