vue.js - Tomcat Rewrite Valve 正在 clientapp 中创建一个循环
问题描述
我有一个在 tomcat 中运行历史模式的 Vue SPA。为了解决 404 路由问题,我已将此代码添加到 tomcat 中的 ~/conf/server.xml 文件中:
...
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
...
</Host>
...
我已将此代码添加到我的 ~/Catalina/localhost/rewrite.config 文件中:(顺便说一句,我在不同的容器中有 6 个 api,我认为它们可能是造成问题的原因?)
RewriteRule ^/api1/ - [L,NC]
RewriteRule ^/api2/ - [L,NC]
RewriteRule ^/api3/ - [L,NC]
RewriteRule ^/api4/ - [L,NC]
RewriteRule ^/api5/ - [L,NC]
RewriteRule ^/api6/ - [L,NC]
RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/(.*) /index.html
我已经重新启动了我的服务器,但我的数组中仍然出现了一个无限循环,这些循环是从我的 api 填充的。如果我删除 rewrite.config,则问题不存在。但后来我再次收到 404 错误。有什么想法吗?
解决方案
通过在 rewrite.config 文件中更改为此代码解决了此问题。
RewriteRule ^/myapi1/.* - [L,NC]
RewriteRule ^/myapi2/.* - [L,NC]
RewriteRule ^/myapi3/.* - [L,NC]
RewriteRule ^/myapi4/.* - [L,NC]
RewriteRule ^/myapi5/.* - [L,NC]
RewriteRule ^/host-manager/.* - [L,NC]
RewriteRule ^/manager/.* - [L,NC]
RewriteCond %{REQUEST_PATH} !-f
RewriteRule ^/(.*) /index.html
推荐阅读
- php - 无法从heroku日志中grep堆栈跟踪
- r - 使用 PDF 输出更改 R Markdown 中标题的字体类型和大小
- ros - 什么是 ROS linting 解决方案
- amazon-web-services - AWS CLI 按特定日期列出对象
- android - android线性布局的滚动视图问题
- reactjs - 无法从 ReasonReact 中的事件侦听器获取事件数据
- python - 特殊字符 ”!” 和“@”分别在密码和用户名中
- salesforce - 在 Tableau 中从 Salesforce 重新创建公式字段
- rust - 如何在 Rust 中查找两个字符串是否有共同字符
- r - rxDataStep 未能在 SQL Server 表中加载数据