繁体   English   中英

ASP.NET-MVC将目录中的文件视为根目录中的文件

[英]ASP.NET-MVC serve files in a directory as if they were in root

我有一个ASP.NET-MVC5项目,客户端是用AngularJS编写的单页应用程序(只有静态文件才能启动它,C#控制器不提供HTML,它们仅处理AJAX调用)。 为了方便起见,Angular部分的所有静态文件(.html,.js,.css)都位于根目录中的WebClient目录中。

一切都可以与www.my-app.com/webclient/index.html路径www.my-app.com/webclient/index.html ,但我希望它仅与www.my-app.com/index.html一起工作。 为此,我需要以某种方式将WebClient目录映射到根地址。 做这个的最好方式是什么? 最好仅使用Web.config文件(但欢迎任何工作方式)。

PS我知道我可以编写自己的控制器来执行此操作,但是据我了解,它会比StaticFileHandler中内置的要慢。 我正在寻找更好的解决方案。 提前致谢。

Okey因此,与往常一样,在接下来的5分钟内遇到问题的肯定方法是最终提出关于SO的问题。

答案是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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM