【问题标题】:How to fix path error when a react build application is deployed in apache tomcat在apache tomcat中部署react build应用程序时如何修复路径错误
【发布时间】:2019-02-16 11:48:57
【问题描述】:

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

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

有没有办法解决这个错误。

【问题讨论】:

    标签: reactjs tomcat


    【解决方案1】:

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

    首先是在你的路由器中设置 basename 属性,这会告诉你的 React 应用它会被挂载在一个子目录中。

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

    接下来您需要在package.json 文件中设置主页参数。您设置应用的完整 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>
    

    【讨论】:

    • @BojonIvanac 谢谢。我尝试了您的建议,我按照说明构建了能够捕获正确路径的应用程序,但没有显示任何内容。经过一些调整(比如我删除了“process.env.PUBLIC_URL”的使用)并重新构建并部署在 apache tomcat 中,我能够得到结果。
    • @sumeeth 完美,很高兴它有帮助,请将答案标记为正确。谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-07-14
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    相关资源
    最近更新 更多