如何在 apache tomcat 9 中配置回退 url
How to configure fallback url in apache tomcat 9
我正在尝试部署 angular 8 应用程序在 apache 中路由 tomcat 9.
我已经使用 ng build --prod --base-href=/ng-app/
构建可分发文件。
我将 ng-app 文件夹放在 tomcats 的 webapps 文件夹中。它正确地呈现 localhost:8080/ng-app
但每当我尝试访问 localhost:8080/ng-app/users
它给我 404.
我从 here 了解到,我需要在应用程序服务器中为 angular 配置回退,以便它重定向到 index.html 如果 ng-app/
下的任何东西是未找到。
我遇到了 apache http 服务器、ngnix 等的配置。但是我找不到与 apache 相同的配置 tomcat 9.
找到解决方案
首先,我必须在 HOST
下的行下方添加(而不是替换)
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
我认为上面的配置是为了 tomcat 读取我将在下面提到的重写配置 -
并在 /conf/Catalina/localhost/
目录中创建文件 rewrite.config
并添加以下规则 -
RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/ng-app/(.*) /ng-app/index.html
如果找不到 /ng-app/ 下的任何内容,此规则基本上会重定向到 /ng-app/index.html。
现在一切正常。
我正在尝试部署 angular 8 应用程序在 apache 中路由 tomcat 9.
我已经使用 ng build --prod --base-href=/ng-app/
构建可分发文件。
我将 ng-app 文件夹放在 tomcats 的 webapps 文件夹中。它正确地呈现 localhost:8080/ng-app
但每当我尝试访问 localhost:8080/ng-app/users
它给我 404.
我从 here 了解到,我需要在应用程序服务器中为 angular 配置回退,以便它重定向到 index.html 如果 ng-app/
下的任何东西是未找到。
我遇到了 apache http 服务器、ngnix 等的配置。但是我找不到与 apache 相同的配置 tomcat 9.
找到解决方案
首先,我必须在 HOST
下的行下方添加(而不是替换)<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
我认为上面的配置是为了 tomcat 读取我将在下面提到的重写配置 -
并在 /conf/Catalina/localhost/
目录中创建文件 rewrite.config
并添加以下规则 -
RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/ng-app/(.*) /ng-app/index.html
如果找不到 /ng-app/ 下的任何内容,此规则基本上会重定向到 /ng-app/index.html。 现在一切正常。