我已经开发了一个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”部分
有没有办法解决此错误。
答案 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>