【发布时间】:2019-06-15 05:03:07
【问题描述】:
我有一个前端项目,它是使用 Angular 7 构建的单页应用程序 (SPA),它使用托管在 Wildfly 上的 Java REST API(同一服务器上还有其他项目)。我们最近将此 SPA 从 Apache 移至 Wildfly,以便在 HTTPS 下提供服务。一切正常,除非用户按 F5 或以任何其他方式刷新页面;在这种情况下,他或她会陷入 404 错误,因为 SPA 期望导航始终停留在 index.html。
例如,如果我访问 [server:port]/myspa,它会正确加载并将我重定向到 [server:port]/myspa/login。但是如果我已经在 [server:port]/myspa/login 中并刷新页面,我会卡在 404 中。
我已经在 standalone.xml 中尝试了一些不起作用的配置,例如在 undertow 子系统中设置过滤器,如下所示:
<subsystem xmlns="urn:jboss:domain:undertow:4.0">
...
<server name="default-server">
...
<host name="default-host" alias="localhost">
...
<filter-ref name="spa-to-index" predicate="equals(%s,404)" />
</host>
</server>
...
<filters>
...
<rewrite name="spa-to-index" redirect="true"
target="http://localhost:8080/myspa/" />
</filters>
</subsystem>
有人知道如何将 [server:port]/myspa/* 的请求重定向到 index.html 吗?
【问题讨论】:
-
好的@DeborahK,也许Nginx可以帮助我解决这个问题。我会进行一些测试并很快带来结果。
标签: angular wildfly single-page-application