在Apache Tomcat

时间:2019-02-16 11:48:57

标签: reactjs tomcat

我已经开发了一个React应用程序,并使用“ npm run build”创建了一个生产版本。当我将此构建文件放入apache tomcat的webapps文件夹(名为ldap)并启动服务器并转到“ http://localhost:8080/ldap/”时,此链接显示所有静态文件的404错误。

我在“网络”标签中查看,发现我所有的静态文件都是从http://localhost:8080/static/css/main.4e0cec6e.chunk.css提供的,它缺少链接(http://localhost:8080/ldap/static/css/main.4e0cec6e.chunk.css)中的“ ldap”部分

有没有办法解决此错误。

1 个答案:

答案 0 :(得分:1)

由于您将React应用程序安装在子目录中,因此您需要解决一些问题。

第一个是在路由器中设置基本名称prop,这告诉您的React应用它将被安装在子目录中。

<Router basename={'/your-directory'}>
  <Route path='/' component={SomeComponent} />
</Router>

下一步,您需要在package.json文件中设置homepage参数。您设置了应用程序的完整URL。

"homepage": "https://yourapp.com/your-directory"

您需要做的第三件事也是最后一件事就是更新链接和路线。

路线示例:

<Route path={`${process.env.PUBLIC_URL}/`} component={HomeComponent} />
<Route path={`${process.env.PUBLIC_URL}/other-dir`} component={SomeOtherComponent} />

链接示例:

<Link to={`${process.env.PUBLIC_URL}/other-dir`}>Link to /other-dir</Link>