如何将文件夹下的请求重定向到另一个文件夹

本文关键字:文件夹 重定向 另一个 请求 | 更新日期: 2023-09-27 17:50:44

我已经在我的遗留MVC项目中实现了绑定,但现在我的CSS中的所有相对路径(我无法更改(都失败了,因为它们指向/bundles/style/content/images,而不是以前的/content/images

如何将所有请求重定向到bundles/style/content/images/content/images

捆绑包名称的示例可能是:

bundles/style/main

如何将文件夹下的请求重定向到另一个文件夹

如本文所示,最简单的解决方案通常只是以这样一种方式命名捆绑包,即编译的文件名模仿要从中提取资产的实际目录。例如,如果我使用这个捆绑包名称:

~/content/css

然后编译的文件看起来像:

/content/css?v=mGNb6rXCidBW01Yat0fYjijROYRAUCUgazmWOLfWJnQ1

这是有效的,因为这意味着我的相对路径从/Content目录开始。

你遇到的问题很常见;因此,Bootstrap和FontAwesome的NuGet包实际上将其/font目录移动到了站点根目录,从那时起,它们的CSS中的相对路径就可以正常工作了。

如果你想要真正的重写,我认为这只能在IIS级别完成;我将进行一些挖掘,看看ASP.NET是否支持本地重写(比如可以与PHP一起使用的.htaccess文件(。

编辑:像往常一样,斯科特顾出手相救:http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx

所以我发现了一个名为CssWriteUrlTransform的ItemTransformer,它将URL重写为绝对值,这样绑定后仍然可以找到资产。

创建捆绑包时使用,如下所示:

bundles.Add(new StyleBundle("~/bundles/style/main").Include("~/Content/styles/main.css", new CssRewriteUrlTransform()));