我一直在使用react-router v4并注意到重新加载(例如localhost:8080/route1
我得到Cannot Get route1
。我调查了这一点,发现一个解决方案就是为你的索引提供服务所有路由的.html(以及bundle.js请求的静态文件)和反应路由器路由现在都按照需要运行。
但是现在我使用自己的服务器,我没有从webpack-dev-server获得好处,例如重新加载保存,缓存bundle以便快速重新编译等。
所以我的问题是我该怎么办?有没有办法让webpack-dev-server处理react-router路由问题?或者我应该继续使用自己的服务器并以某种方式模仿我从webpack-dev-server获得的好处?或者其他一些我没有考虑过的事情。
答案 0 :(得分:0)
通过在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
},
};