ASP.NET-MVC 在目录中提供文件,就像它们在根目录中一样
本文关键字:根目录 一样 NET-MVC ASP 文件 | 更新日期: 2023-09-27 18:32:01
我有一个 ASP.NET-MVC5项目,客户端是用AngularJS编写的单页应用程序(只有静态文件需要启动它,C#控制器不提供HTML,它们只处理AJAX调用)。为方便起见,Angular 部分(.html、.js、.css)的所有静态文件都位于根目录中的WebClient
目录中。
一切都适用于像 www.my-app.com/webclient/index.html
这样的路径,但我希望它只适用于www.my-app.com/index.html
.为此,我需要以某种方式将WebClient
目录映射到根地址。最好的方法是什么?最好只使用Web.config
文件(但欢迎任何工作方式)。
附言我知道我可以编写自己的控制器来执行此操作,但是,据我了解,它将比内置的静态文件处理程序慢。我正在努力寻找更好的解决方案。提前谢谢。
Okey,因此,与往常一样,在接下来的 5 分钟内遇到答案的保证方法是最终在 SO 上提问。
答案是 IIS URL 重写模块。在这里找到有关它的信息
您需要将其添加到您的 Web.config 中(正则表达式仍然需要一些工作来屏蔽 API 路由并添加所有可能的符号)
<system.webServer>
<rewrite>
<rules>
<rule name="Route root to WebClient" stopProcessing="true">
<match url="^([_0-9a-z-./'?]+)" />
<action type="Rewrite" url="WebClient/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>