c# - ASP.net 核心 MVC 捕获所有路由服务静态文件

标签 c# asp.net-core asp.net-core-mvc

有没有办法让 catch all 路由服务于静态文件?

看着这个http://blog.nbellocam.me/2016/03/21/routing-angular-2-asp-net-core/

我基本上想要这样的东西:

        app.UseMvc(routes =>
        {
            routes.MapRoute("default", "{controller}/{action=Index}");

            routes.MapRoute("spa", "{*url}"); // This should serve SPA index.html
        });

因此,任何与 MVC Controller 不匹配的路由都将提供 wwwroot/index.html

最佳答案

我不得不对@DavidG 的回答做一些补充。这是我最终得到的结果

Startup.cs

app.UseStaticFiles();

app.UseMvc(routes =>
{
   routes.MapRoute("default", "{controller}/{action}");

   routes.MapRoute("Spa", "{*url}", defaults: new { controller = "Home", action = "Spa" });
});

HomeController.cs

public class HomeController : Controller
{
  public IActionResult Spa()
  {
      return File("~/index.html", "text/html");
  }
}

关于c# - ASP.net 核心 MVC 捕获所有路由服务静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42414397/

相关文章:

c# - 如何向窗口标题栏添加一个额外的按钮,以便它按标准工作?

c# - 消息 : Incorrect syntax near 'ID'

c# - 如何从 xml 文档中删除特定节点?

c# - 运行asp.net core api项目时如何在vscode中设置不打开新的Web浏览器选项卡

asp.net-mvc - 我必须附加到什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?

c# - 简单的 asp.net 标记帮助器列表 <> 问题

asp.net - 在 ASP.NET 5/MVC 6 上运行 Selenium 测试之前启动 IIS Express

c# - 如何将文本插入文本框 selenium c#

asp.net - 读取 ASP.NET Core 中的环境变量

c# - 绑定(bind)属性变为空