尝试访问ASP.Net中捆绑的slick.css文件时出现“forbidden error”。

3

我在我的ASP.Net MVC项目中使用了slick-carousel。如果我通过Html中的普通<link>标签链接文件,它可以正常工作。但是如果我将文件捆绑并在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
@Sh.Imran:我改变了顺序,但问题仍然存在。 - Archana
@Archana,你找到解决方案了吗?我似乎也遇到了同样的问题... - Developer
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接