webpack-dev-server - 深度路由的 webpack historyApiFallback 配置

标签 webpack-dev-server html5-history nested-routes

可以将 webpack-dev-server 设置为将您发送回 index.html 并找到像 http://localhost:4301/sdr 这样的单个路由的脚本,但是当您放入更深的路由(或末尾带有/的单个路由)时,它会得到 http://localhost:4301/sdr/dog使困惑。

  devServer: {
    contentBase: './dist',
    historyApiFallback: true
  },

使用 http://localhost:4301/sdr/dog 服务器响应
x GET http://localhost:4301/sdr/bundle.js 

将/sdr 添加到搜索 bundle.js 的路径中

我怎样才能解决这个问题。 ...然后我将在 NGINX 上尝试它,然后使用 react-router 然后使用 navigo 然后使用 react-router-redux ....

最佳答案

我也有这个问题。我发现解决方案是在输出下将 publicPath: '/' 添加到我的 webpack 配置中。

const base = {
  entry: [
    PATHS.app,
  ],
  output: {
    path: PATHS.build,
    publicPath: '/',
    filename: 'index_bundle.js',
  },
  module: {
    loaders: [
      {test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'},
      {test: /\.css$/, loader: 'style!css?sourceMap&modules&localIdentName=[name]__[local]___[hash:base64:5]'},
      {test: /\.json$/, loader: 'json'},
    ],
  },
  resolve: {
    root: path.resolve('./app'),
  },
}

const developmentConfig = {
  devtool: 'cheap-module-inline-source-map',
  devServer: {
    contentBase: PATHS.build,
    hot: true,
    inline: true,
    progress: true,
    proxy: {
      '/api': 'http://127.0.0.1:5000',
    },
    historyApiFallback: true,
  },
  plugins: [HTMLWebpackPluginConfig, new webpack.HotModuleReplacementPlugin()],
}

export default Object.assign({}, base, developmentConfig)

这是此属性的更详细文档:http://webpack.github.io/docs/configuration.html#output-publicpath

以下是对这个问题进行更详细讨论的论坛:
https://github.com/webpack/webpack/issues/443

关于webpack-dev-server - 深度路由的 webpack historyApiFallback 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39352703/

相关文章:

webpack - 使用 webpack 提供公共(public)静态文件

javascript - 使用 webpack 将 html 文件中的图像复制到输出目录

javascript - 如何在ajax页面上启用后退按钮

javascript - 如何在 history.pushstate 中使用第一个参数

ruby-on-rails - Rails 中的嵌套资源

javascript - 使用重定向时 react 父组件完全重建

reactjs - WebPack 禁用 HMR

webpack - 无法让 webpack 热模块更换工作

javascript - 如何在 angularjs 中存储和检索搜索参数?

javascript - emberjs 中的嵌套路由而不使用资源导出