我有一个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
文件(但欢迎任何工作方式)。
P.S。我知道我可以编写自己的控制器来执行此操作,但据我所知,它将比在StaticFileHandler中构建的更慢。我正在努力寻找更好的解决方案。提前谢谢。
答案 0 :(得分:0)
Okey,所以,一如既往,在接下来的5分钟内遇到答案的保证方式是最终在SO上提问。
答案是IIS URL重写模块。找到关于它的信息here
您需要将此添加到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>