gpt4 book ai didi

javascript - React-router v4 - 无法获取 *url*

转载 作者:IT王子 更新时间:2023-10-29 03:02:57 26 4
gpt4 key购买 nike

我开始使用 react-router v4。我有一个简单的 <Router>在我的 app.js 中有一些导航链接(见下面的代码)。如果我导航到 localhost/vocabulary ,路由器将我重定向到正确的页面。但是,当我之后按重新加载 (F5) ( localhost/vocabulary ) 时,所有内容都消失并且浏览器报告 Cannot GET /vocabulary .这怎么可能?有人可以告诉我如何解决这个问题(正确地重新加载页面)吗?

应用程序.js:

import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import { Switch, Redirect } from 'react-router'
import Login from './pages/Login'
import Vocabulary from './pages/Vocabulary'

const appContainer = document.getElementById('app')

ReactDOM.render(
<Router>
<div>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/vocabulary">Vocabulary</Link></li>
</ul>
<Switch>
<Route exact path="/" component={Login} />
<Route exact path="/vocabulary" component={Vocabulary} />
</Switch>
</div>
</Router>,
appContainer)

最佳答案

我假设您正在使用 Webpack。如果是这样,在你的 webpack 配置中添加一些东西应该可以解决这个问题。具体来说,output.publicPath = '/'devServer.historyApiFallback = true。下面是一个 webpack 配置示例,它同时使用了 ^ 并为我修复了刷新问题。如果你好奇“为什么”,this会有帮助。

var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
entry: './app/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index_bundle.js',
publicPath: '/'
},
module: {
rules: [
{ test: /\.(js)$/, use: 'babel-loader' },
{ test: /\.css$/, use: [ 'style-loader', 'css-loader' ]}
]
},
devServer: {
historyApiFallback: true,
},
plugins: [
new HtmlWebpackPlugin({
template: 'app/index.html'
})
]
};

我在这里写了更多关于这个的内容 - Fixing the "cannot GET /URL" error on refresh with React Router (or how client side routers work)

关于javascript - React-router v4 - 无法获取 *url*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com