使用嵌套路径时刷新空白页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用嵌套路径时刷新空白页面相关的知识,希望对你有一定的参考价值。

我很反应和webpack,我正在尝试使用react-router-dom在我的网络应用程序中进行路由。

但奇怪的是,当我将组件的路径定义为'/:guid'时,一切正常,但如果我将其设置为'/ users /:guid',那么当我刷新页面时,我会得到一个空白页面。

我读了一些帖子,说要将'publicPath'和'historyApiFallback:true'添加到我的webpack.config.js中,但由于某些原因它仍然无效。虽然,在添加它之前,我得到'无法获取网址'错误。

Router.js:

import React from 'react';
import {BrowserRouter, Route, Switch} from 'react-router-dom';
import UserInfo from '../Containers/UserInfo/UserInfo';
import Main from './Main/Main';

const Router = () => {
  return (
    <BrowserRouter>
      <Switch>
        <Route exact path='/' component={Main} />
        <Route path='/users/:guid' component={UserInfo} />
      </Switch>
    </BrowserRouter>
  );
};

export default Router;

webpack.config.js:

const path = require('path');

const DIST_DIR = path.resolve(__dirname, 'dist');
const SRC_DIR = path.resolve(__dirname, 'src');

const config = {
  entry: `${SRC_DIR}/app/index.js`,
  output: {
    path: `${DIST_DIR}/`,
    filename: 'bundle.js',
    publicPath: '/'
  },
  module: {
    rules: [
      {
        test: /.js?$/,
        include: SRC_DIR,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015', 'stage-2']
        }
      },
      {
        test: /.css$/,
        use: ['style-loader', 'css-loader']
      }
    ]
  },
  devServer: {
    historyApiFallback: true
  }
};

module.exports = config;
答案

好吧,经过一些更多的研究,我得到this github webpack-dev-server问题页面,建议在我的“index.html”文件中添加一个<base />

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>React Training Project</title>
    <base href="/">
</head>
<body>
    <div id="app"></div>
    <script src="./bundle.js"></script>    
</body>
</html>

显然这就是我所缺少的。

以上是关于使用嵌套路径时刷新空白页面的主要内容,如果未能解决你的问题,请参考以下文章

片段中的Android webView显示空白页面

获取嵌套数组 React

vue项目打包后打开页面空白解决办法

一个页面里面嵌套了多个iframe,iframe刷新的问题

使用反应路由器 V6 和刷新页面时我得到空白页面

刷新给出空白页php [重复]