
我已经在Tomcat下发布了一个angular应用程序,它工作得很好,但只要用户刷新页面,Tomcat就会回答他找不到URL (之前使用angular-routing处理),而不是使用localhost 'ng serve‘,它工作得很好。
你知道怎么解决这个问题吗?
谢谢
发布于 2019-09-29 10:50:55
如果没有服务器上的重定向规则,应用程序深度链接将不起作用。所有深层链接都必须由服务器重定向到应用程序index.html。
将tomcat设置为重定向所有深度链接-
在rewrite.config中配置重写规则server.xml
1.在server.xml中配置RewriteValve
编辑~/conf/server.xml以在主机部分内添加以下阀门,如下所示-
...
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
...
</Host>
...2.在rewrite.config中编写重写规则
创建目录结构- ~/conf/Catalina/localhost/,并在其中创建包含以下内容的rewrite.config文件。注意-在这里,我将/hello作为应用程序的上下文路径。
RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/hello/(.*) /hello/index.html设置完成后,重新启动tomcat服务器,您就可以访问应用程序的深层链接,这些链接将路由到angular应用程序内部的正确组件。
有关更多详细信息,请参阅this post。
https://stackoverflow.com/questions/52723841
复制相似问题