reactjs - React 路由在 dev 中工作但在 Apache 上的构建中不起作用——构建问题还是 Web 服务器问题?
问题描述
我有一个带有一些简单路由的反应应用程序,它在运行开发服务器时完美运行,但在从构建文件夹运行时却不行。
到目前为止,我在网上发现了类似但不完全相同的问题——我希望我没有添加重复的问题。如果是这样,我很抱歉,如果可能的话,请指导我找到解决方案。
代码非常简单,如下所示。正如我所提到的,它已经在开发服务器上运行,所以我认为问题不在于这里。
<Router>
<div className="App">
<Switch>
<Route path="/quotation">
...do quotation stuff...
</Route>
<Route path="/">
...do homepage stuff...
</Route>
</Switch>
</div>
</Router>
我根据文档添加了 .htaccess 文件:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
部署构建文件夹后,可以直接访问它(在我的情况下,类似于 staging.example.com/frontend)。问题是尝试添加路由,例如 staging.example.com/frontend/quotation。没有 .htaccess 文件,我得到一个 404,正如预期的那样。然而,有了 .htaccess 文件,它只为我提供主页,即忽略“/quotation”部分。
编辑:当我将构建文件夹的内容直接上传到文档根目录时,它可以工作,例如 staging.example.com 按照上面的示例。这暂时解决了问题,但感觉不是 100% 令人满意。我猜想 .htaccess 文件需要调整,但我不确定如何调整。或者,package.json 中是否有类似“主页”字段的内容?
解决方案
推荐阅读
- seo - 如何处理 seo 的多个标题 url
- sql - 本地验证仅使用 Oauth2.0 的人
- firebase - 从 Firestore 获取数据时出现 NullPointerException 的原因是什么?
- python - 我 PC 中的 Python 版本显示 2.7.17 而不是 3.8.5
- c++ - 将 jpg 读入 CPP 中的二维像素数组
- javascript - 重构 if 语句以消除冗余
- autodesk-forge - Forge Model Derivative OBJ 翻译不正确
- python-3.x - 如何使用python将回文字符串从一个文件复制到另一个文件
- angular - 根据Angular 9中的切换按钮更改显示/隐藏div
- reactjs - Axios React/Redux - 使用 thunk 动作创建器时不触发?