Java 如何运行FE并在单个根中运行?

Java 如何运行FE并在单个根中运行?,java,reactjs,spring-boot,tomcat,build,Java,Reactjs,Spring Boot,Tomcat,Build,我想要达到的是;我正在做一个基于React和Spring Boot技术的项目。此时,两者都运行在单独的目录/平台中。我想用ApacheTomcat将两者运行到一个根目录中 我面对的是什么 我能够从FE加载主页,API也工作得很好 其他路由器不工作 例如: http://localhost:8080工作正常,主页加载正确 http://localhost:8080/dashboard正在显示404-找不到页面 检查了许多示例并编写了.htaccess以及web.xml和httpd.conf来重

我想要达到的是;我正在做一个基于React和Spring Boot技术的项目。此时,两者都运行在单独的目录/平台中。我想用ApacheTomcat将两者运行到一个根目录中

我面对的是什么

  • 我能够从FE加载主页,API也工作得很好
  • 其他路由器不工作
例如:

http://localhost:8080
工作正常,主页加载正确

http://localhost:8080/dashboard
正在显示404-找不到页面

检查了许多示例并编写了
.htaccess
以及
web.xml
httpd.conf
来重定向
index.html
文件上的所有请求。下面是我在每个文件中编写的代码

.htaccess

<IfModule mod_rewrite.c>

  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule . /index.html [L]

</IfModule>

重新启动发动机
重写基/
重写规则^index\.html$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-L
重写规则/index.html[L]
web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

    <display-name>create-react-app-servlet</display-name>

    <error-page>
        <error-code>404</error-code>
        <location>/index.jsp</location>
    </error-page>

</web-app>

创建应用程序servlet
404
/index.jsp
我从SOF和一些博客中找到了这些解决方案,但我仍然无法在不同的路由器上路由。让我知道我哪里做错了,这个配置还缺少什么

编辑:


我有一个war文件,通过复制粘贴上传,FE构建到其中。

我不明白你试图用这些重写规则实现什么。你有WAR文件还是可执行JAR?@SimonMartinelli有一个WAR文件并将FE构建复制到其中,同时更新了问题:)你的问题到底是什么?当我将两端合并为一个时,我无法在react应用程序的路由上重定向,它总是显示404-找不到页面。你可以转到并创建react和Spring引导应用程序,并检查它们的工作方式