C# ASP.NET-MVC为目录中的文件提供服务,就像它们位于根目录中一样
我有一个ASP.NET-MVC5项目,客户端是用AngularJS编写的单页应用程序,启动它只需要静态文件,C控制器不提供HTML,它们只处理AJAX调用。为方便起见,Angular part.html、.js、.css的所有静态文件都位于根目录中的WebClient目录中 在www.my-app.com/webclient/index.html这样的路径上,一切都可以正常工作,但我希望它只在www.my-app.com/index.html上工作。为此,我需要将WebClient目录映射到根地址。最好的方法是什么?最好只使用Web.config文件,但欢迎使用任何工作方式C# ASP.NET-MVC为目录中的文件提供服务,就像它们位于根目录中一样,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个ASP.NET-MVC5项目,客户端是用AngularJS编写的单页应用程序,启动它只需要静态文件,C控制器不提供HTML,它们只处理AJAX调用。为方便起见,Angular part.html、.js、.css的所有静态文件都位于根目录中的WebClient目录中 在www.my-app.com/webclient/index.html这样的路径上,一切都可以正常工作,但我希望它只在www.my-app.com/index.html上工作。为此,我需要将WebClient目录映射到根地
另外,我知道我可以编写自己的控制器来实现这一点,但据我所知,它将比内置的StaticFileHandler慢。我正试图找到更好的解决办法。提前谢谢。好的,所以,像往常一样,在接下来的5分钟内找到答案的保证方法是最后问这个问题 答案是IIS URL重写模块。找到了上面的信息 您需要将其添加到Web.config中。regexp仍然需要一些工作来屏蔽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>