我正在构建一个客户端/服务器解决方案,使用 AngularJS 单页应用程序作为客户端组件,使用 Self-Host ServiceStack RESTful API 作为服务器组件。单个 Visual Studio 控制台应用程序项目包含 AngularJS 组件的 HTML 和 JavaScript 文件,以及用于引导 ServiceStack AppHost 的 C# 类(我已将接口和服务职责转移到单独的 Visual Studio 项目中)。
我已将所有 HTML 和 JavaScript 文件设置为具有“无”的“构建操作”和“如果较新则复制”的“复制到输出目录”。
只要我准备好忍受在我的网站 URL 中使用“#”,一切都运行良好。我想通过使用 HTML5 pushstate URL 来消除这种情况。
实际上,这意味着每当请求不存在的路由时,我需要说服 ServiceStack 提供我的默认单页应用程序 HTML shell 页面。现在ServiceStack 中提供了一个FallbackRoute属性,似乎正是为此目的而添加的。
但是,我不确定如何使用它。我发现人们在这里、 这里和这里提出了类似的问题。但是给出的答案都是在新的 FallbackRoute 属性到来之前。
本质上,我正在寻找一个简单但完整的示例,说明如何使用 FallbackRoute 属性确保对不存在的路由的任何请求都重定向到单个静态 HTML 页面。