javascript - 使用 React Router DOM 时路径被修改
问题描述
我正在使用 react-router-dom 5.2.0 和 React 17.0.1
我的应用程序 URL 由一个域和一个应该固定并保持不变的基本路径组成。在我的应用程序上使用 react-router-dom 时,基本路径被修改并且路径完全改变。路由工作正常,但导航栏上的 URL 被路由屠杀了。
我的基本网址是https://uat.highnoon.com/master/app/testplanweb
,如果我点击<Link to="/about">
我得到https://uat.silose.com/about
我需要 React Router DOM 保持路径不变,在上述情况下它应该是https://uat.highnoon.com/master/app/testplanweb/about
. URL 是在我的 gitlab 管道中配置的,我需要域和基本路径在导航时保持不变。
index.js
import React from "react";
import ReactDOM from "react-dom";
import { BrowserRouter } from "react-router-dom";
import App from "./App";
import reportWebVitals from './reportWebVitals';
ReactDOM.render(
<BrowserRouter>
<App />
</BrowserRouter>,
document.getElementById("root")
);
reportWebVitals();
App.js
import React from "react";
import { useLocation, Switch, Route, Redirect } from "react-router-dom";
import "./App.css";
import Version from './components/Version';
import List from "./components/List";
import { Home } from "./components/Home"
import Nav from "./components/Nav";
function App() {
const { pathname } = useLocation();
return (
<div className="App">
<Nav/>
<Switch>
<Redirect from="/:url*(/+)" to={pathname.slice(0, -1)} />
<Route exact path="/" component={Home} />
<Route exact path="/search" component={List} />
<Route exact path="/about" component={Version} />
</Switch>
</div>
);
}
export default App;
Nav.js
import React from 'react';
import './../App.css';
import { Link } from 'react-router-dom';
import "bootstrap/dist/css/bootstrap.min.css";
function Nav() {
return (
<nav class="nav nav-tabs justify-content-left p-3 mb-2 bg-dark text-white">
<Link to="/">
<a class="nav-link text-white bg-dark">
Home
</a>
</Link>
<Link to="/search">
<a class="nav-link text-white bg-dark">
Search
</a>
</Link>
<Link to="/about">
<a class="nav-link text-white bg-dark">
About
</a>
</Link>
</nav>
);
}
export default Nav;
解决方案
尝试使用<BrowserRouter basename="/master/app/testplanweb">
推荐阅读
- javascript - JS + DharmaProtocol - 未捕获的语法错误:请求的模块“...”不提供名为“Dharma”的导出
- mysql - 在mysql中获取保留日期对
- web - 无法从链接下载文件,使用了 CURL
- xml - 用于远程 XML 的 XQuery
- python - 如何在交互模式下将 Elmo 词嵌入与原始预训练模型(5.5B)一起使用
- git - 从 Visual Studio 2017 将现有解决方案添加到本地 Git 服务器 (Kalithea) 存储库
- javascript - 意外行为:Javascript、setTimeout() 和 IIFE
- oracle - ORA-22903: 不允许 MULTISET 表达式
- angular - 离子本地存储未获取数据
- django - 如何覆盖 list_editable 保存?