React-Router和webpack-dev-server重新加载

问题描述:

我一直在使用react-router v4,并注意到在重新加载(例如localhost:8080/route1我得到Cannot Get route1。我研究了这个,发现一个解决方案是为您的索引.html所有路由(加上bundle.js请求的静态文件)和反应路由器路由现在的行为如预期的那样React-Router和webpack-dev-server重新加载

但是现在我使用自己的服务器,我没有得到webpack的好处-dev-server,例如保存时重新加载,快速重新编译的缓存等。

所以我的问题是我该怎么办?有没有办法让webpack-dev-server处理反应路由器路由问题?或者我应该继续我的自己的服务器和罚款一些方法来模仿我从webpack-dev-server获得的好处?或者我还没有考虑过的其他事情。

我有一个类似的问题,我通过在webpack.config.js中设置输出publicPath来解决。这是文件夹结构:

project-folder 
-webpack.config.js 
-node_modules 
-src 
--index.html 
--js 
---app 
----index.bundle.js 
----index.js 

webpack.config.js

var path = require('path'); 

module.exports = { 
    entry: { 
    index: './src/js/app/index.js' 
    }, 
    output: { 
    path: path.resolve(__dirname, 'src/js/app'), 
    filename: '[name].bundle.js', 
    publicPath: '/src/js/app/', 
    }, 
    resolve: { 
    extensions: ['.ts', '.tsx', '.js'] 
    }, 
    module: { 
    rules: [ 
     { 
     test: /\.js$/, 
     use: 'babel-loader', 
     exclude: /(node_modules|bower_components)/ 
     }, 
     { 
     test: /\.vue$/, 
     loader: 'vue-loader', 
     options: { 
      loaders: { 
      js: 'babel-loader', 
      scss: 'vue-style-loader!css-loader!sass-loader' 
      } 
     } 
     }, 
     { 
     test: /\.(png|jpg|gif|svg)$/, 
     loader: 'file-loader', 
     options: { 
      name: '[name].[ext]', 
      publicPath: 'js/app/', 
     } 
     } 
    ] 
    }, 
    devServer: { 
    noInfo: true 
    }, 
}; 
+0

你可以解释为什么工作? –

+0

这是我现在的配置,不知何故它的工作原理没有指定公共路径 https://gist.github.com/alexbollbach/7a7abed3b345dd2e819f459a6a495f89 –

+0

在我的情况下,对于rooter来说,root是project-folder,而不是我想要的src Rooter失败了,我需要改变公共路径。无论如何,你已经解决了没有公共道路的问题,对吧?采用的解决方案是什么? – itacode