使用 app.useSpa() 并处理 404 的 Asp.Net Core
Posted
技术标签:
【中文标题】使用 app.useSpa() 并处理 404 的 Asp.Net Core【英文标题】:Asp.Net Core which uses app.useSpa() and handles 404s 【发布时间】:2021-11-28 02:12:20 【问题描述】:我们有一个 Asp.Net Core 应用程序,它使用以下方法包装 Spa (Angular):
app.useSpa()
中间件。效果很好。
当一个不存在的 url 页面请求进入时(通常是从以前的技术堆栈 .aspx 请求页面),我们在 Angular 的路由器中处理它。
但是 app.useSpa() 中间件在 .net 中引发了一个错误,该错误被捕获并发布。
当请求 404 '.aspx' 页面时,我们如何让 asp.useSpa() 不抛出错误(如下)?
例外是:
System.InvalidOperationException:SPA 默认页面中间件无法返回默认页面“/index.html”,因为未找到,并且没有其他中间件处理该请求。
【问题讨论】:
有没有你学过的教程可以在这里分享一下?这可能有助于我们重现您的问题,我无法很好地了解您的情况。 【参考方案1】:从微软文档中,他们说:
通过返回单页应用程序 (SPA) 的默认页面来处理中间件链中的所有请求。
这意味着对尚未找到控制器的路由的任何请求将始终返回默认的 SPA 页面,而不是抛出 404。您所拥有的异常是其他内容,与引发的问题无关关于“useSpa()”。这是配置问题或其他问题...一个常见问题是 Angular 应用程序的 API Url 中的斜杠。
【讨论】:
以上是关于使用 app.useSpa() 并处理 404 的 Asp.Net Core的主要内容,如果未能解决你的问题,请参考以下文章