HnM*_*M97 9 reactjs create-react-app react-router-dom
我正在使用react-router-dom和create-react-app。
运行脚本yarn start
,它以http://localhost:3000/(myprojectname)
,而不是开头http://localhost:3000/
当使用react-router-dom进行路由时,我必须myprojectname
从url中删除,然后添加页面路由。
项目的初始设置好像有问题,
我该如何开始http://localhost:3000/
?
添加package.json、路由器代码。
包.json:
{
"name": "cau-burger-online-order-system",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10",
"@types/jest": "^26.0.15",
"@types/node": "^12.0.0",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"@types/react-router-dom": "^5.3.2",
"@types/styled-components": "^5.1.16",
"axios": "^0.24.0",
"bootstrap": "^5.1.3",
"brace-expansion": "^2.0.1",
"gh-pages": "^3.2.3",
"prettier": "^2.5.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router-dom": "5.3.0",
"react-scripts": "4.0.3",
"styled-components": "^5.3.3",
"typescript": "^4.1.2",
"web-vitals": "^1.0.1"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -d build"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"homepage": "https://myprojectname"
}
Run Code Online (Sandbox Code Playgroud)
应用程序.tsx:
import '../node_modules/bootstrap/dist/css/bootstrap.min.css'
import './App.css'
import { Route, BrowserRouter as Router, Switch } from 'react-router-dom'
import Detail from 'pages/detail/Detail'
import GlobalStyle from './GlobalStyle'
import Home from 'pages/home/Home'
import Login from 'pages/login'
import Signup from 'pages/signup'
function App() {
return (
<Router>
<GlobalStyle />
<div className="App">
<div className="auth-wrapper">
<Switch>
<Route exact path="/" component={Login} />
<Route path="/login" component={Login} />
<Route path="/signup" component={Signup} />
<Route path="/home" component={Home} />
<Route path="/detail" component={Detail} />
</Switch>
</div>
</div>
</Router>
)
}
export default App
Run Code Online (Sandbox Code Playgroud)
Dre*_*ese 12
在package.json
文件中将条目更改homepage
为相对路径,不包括任何子域/嵌套目录。
{
"name": "cau-burger-online-order-system",
"version": "0.1.0",
"private": true,
"dependencies": {
....
},
"scripts": {
...
},
...,
"homepage": "https://hy57in.github.io/2021-Industry-Hands-On-Project"
}
Run Code Online (Sandbox Code Playgroud)
到
{
"name": "cau-burger-online-order-system",
"version": "0.1.0",
"private": true,
"dependencies": {
...
},
"scripts": {
...
},
...,
"homepage": "./"
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您只需要做两件事来更改 ReactRouterDom dom 的基本 Url。当您在 github 页面等网站上托管网站时,或者在 Https://website.com/mywebsite 等 url 或子链接上托管网站时,它非常有用。
首先 - 您必须添加一个属性,例如 -
<BrowserRouter basename='/mywebsite'>
或者打开 package.json 并添加 Before build your project for production
"homepage": "/your-subdirectory",
Run Code Online (Sandbox Code Playgroud)
对于我的情况:
"homepage": "/mywebsite",
Run Code Online (Sandbox Code Playgroud)
我希望这会有所帮助,请随时询问您是否陷入困境。
归档时间: |
|
查看次数: |
39065 次 |
最近记录: |