reactjs - React Router 部署时无法直接访问子页面
问题描述
当我在 localhost 工作时,使用 create-react-app
我可以访问 localhost:3000/A 或 localhost:3000/B
但是当我将它部署到服务器时,npm build 运行并将构建的文件放到服务器文件夹中,例如https://ip/project_name
我可以点击<Link/>
进入 https://ip/project_name/A或https://ip/project_name/B
但我无法直接访问 https://ip/project_name/A。
应用程序.js
<BrowserRouter basename={'project_name'}>
<Route path='/A' component={A}/>
<Route path='/B' component={B}/>
</BrowserRouter>
关联
<Link to="/A">A</Link>
<Link to="/B">B</Link>
包.json
"homepage": ".",
...
"dependencies": {
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-router-dom": "^5.1.2",
"react-scripts": "3.2.0"
}
解决方案
您是否尝试过使用字符串作为 basename 道具?
<BrowserRouter basename="project_name">
<Route path='/A' component={A}/>
<Route path='/B' component={B}/>
</BrowserRouter>
推荐阅读
- android - ANDROID BLE 绑定后如何从蓝牙耳机等系统自动连接到外围设备
- sql - 对某物执行两个表连接时出现 SQL 语法错误
- javascript - 使用 jQuery 未定义图像属性
- java - 由于 LSP 导致的 Spring Boot 问题(无法从进程中刷新实时数据......)
- parse-platform - Parse Server - 从包含的对象中选择一些字段
- java - 如何在 Java 中并行运行?
- vue.js - 使用 Vuex 从组件获取和编辑状态。ReferenceError: $store 未定义
- python - 如何用超过 1 个向量拟合 MultinomialNB?
- python - 如何处理 Panda Dataframe 中的字符串?
- azure - 代表 Azure AD 多租户应用程序的 Azure 资源管理器