1

我在 Internet 上没有看到将 ServiceStack Razor 与多个 SPA 一起使用的示例。在我的用例中有多个 SPA 的原因是因为我的整个站点非常庞大,我想用多个 SPA 模块化我的站点。我知道 FallbackRoute 属性,但它似乎只允许基于文档的一个 FallbackRoute?例如,我想在我的应用程序中拥有这些路由到它们各自的 SPA

  • www.mydomain.com/spa1/...
  • www.mydomain.com/spa2/...
  • www.mydomain.com/spa3/...

有没有人有这种架构的例子?如果它也在 .NET Core 架构中会很好

4

1 回答 1

0

只需为备用路由中的每个不同路由返回您需要的相应 SPA 主页,例如:

[FallbackRoute("/{PathInfo*}")]
public class FallbackForClientRoutes
{
    public string PathInfo { get; set; }
}

public class MyServices : Service
{
    //Return SPA index.html for unmatched requests so routing is handled on client
    public object Any(FallbackForClientRoutes request)
    {
        if (request.PathInfo.StartsWith("/spa1"))
            return new HttpResult(VirtualFileSources.GetFile("spa1/index.html"));
        if (request.PathInfo.StartsWith("/spa2"))
            return new HttpResult(VirtualFileSources.GetFile("spa2/index.html"));
        if (request.PathInfo.StartsWith("/spa3"))
            return new HttpResult(VirtualFileSources.GetFile("spa3/index.html"));

        throw new NotSupportedException("Unknown Route: " + request.PathInfo);
    }
}
于 2017-07-29T19:31:42.320 回答