尝试访问 ASP.Net 中捆绑的 slick.css 文件时出现“禁止错误”

Posted

技术标签:

【中文标题】尝试访问 ASP.Net 中捆绑的 slick.css 文件时出现“禁止错误”【英文标题】:"forbidden error" when trying to access the bundled slick.css file in ASP.Net 【发布时间】:2020-12-03 04:45:58 【问题描述】:

我在我的 ASP.Net MVC 项目中使用 slick-carousel。如果我通过html中的普通<link>标签链接slick.css文件,它工作正常。但是如果我捆绑slick.css文件并用Html渲染它,它会显示禁止错误(403)。

工作解决方案

<link rel="stylesheet" type="text/css" href="~/Content/Slick/slick.css" />
<link rel="stylesheet" type="text/css" href="~/Content/Slick/slick-theme.css" />

打包文件

bundles.Add(new StyleBundle("~/Content/Slick").Include(
                    "~/Content/Slick/slick.css"));

bundles.Add(new StyleBundle("~/Content/SlickTheme").Include(
                    "~/Content/Slick/slick-theme.css"));

引用捆绑的文件

@Styles.Render("~/Content/Slick")
@Styles.Render("~/Content/SlickTheme")

谁能告诉我为什么我只有在捆绑时才会收到这样的错误?

【问题讨论】:

尝试在Slick之前使用SlickTheme的引用 @Sh.Imran :我更改了订单,但问题仍然存在。 @Archana 你找到解决方案了吗?我也面临着同样的问题…… 【参考方案1】:

这不是 slick 特定的问题,但 slick 的 NuGet 安装的文件夹结构引发了它。

如果捆绑包名称与 Web 应用程序中真正存在的文件夹匹配,则会出现问题,因为这样请求就不会被识别为对捆绑包的访问,而是对未被授予的文件夹的访问。如您在我的示例中所见,包的命名方案与文件夹匹配。

 bundles.Add(new StyleBundle("~/Content/slick").Include("~/Content/Slick/slick.css"));

按照此处所示更改包名称(当然还有参考)后,它就可以工作了

 bundles.Add(new StyleBundle("~/Content/slickstyle").Include("~/Content/Slick/slick.css"));

【讨论】:

您的解决方案对我有用,谢谢!

以上是关于尝试访问 ASP.Net 中捆绑的 slick.css 文件时出现“禁止错误”的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.Net WebForms 中使用捆绑(来自 Systelm.Web.Optimization)会导致问题 [重复]

如何使用 ASP.NET 4.5 捆绑和 CDN 来获取 Bootstrap 3.2?

Azure 中的捆绑不适用于 bootstrap 和 jquery、ASP.NET MVC 5

ASP.NET Core 托管捆绑包 5 是不是也可以运行 .NET/ASP.NET Core 2.1 应用程序?

为啥捆绑包在我的 asp.net mvc 项目中不起作用?

这些在 ASP.NET Web Forms 4.5 中引用捆绑 CSS 的方法有啥区别?