我刷新时,Webpack-dev-middleware返回404

时间:2017-03-27 19:25:49

标签: node.js reactjs express react-router webpack-dev-middleware

我正在尝试使用react-redux-app设置webpack-dev-middleware。如果我刷新主页,我收到了200状态代码。但如果我在任何其他页面刷新(' / signin'),我会收到404错误。

经过一些谷歌搜索后,我找到了this on Github

var express = require('express');
var app = express();
var webpack = require('webpack');
var path = require('path');

var compiler = webpack(require('./webpack.config.js'));

app.use(require('webpack-dev-middleware')(compiler, {
  noInfo: true,
  publicPath: '/'
}));

app.use('*', function (req, res, next) {
  var filename = path.join(compiler.outputPath,'index.html');
  compiler.outputFileSystem.readFile(filename, function(err, result){
    if (err) {
      return next(err);
    }
    res.set('content-type','text/html');
    res.send(result);
    res.end();
  });
});

app.listen(3000);

这样可行,但我不确定原因。我认为index.html正在服务于内存,这在主页上不是问题,但对于所有其他页面而言。具体来说,我无法弄清楚compiler.outputFilesystem的作用。当我console.log(compiler.outputFilesystem)时,我得到:

outputFileSystem: MemoryFileSystem { data: {} }

具有空属性的对象如何能够将index.html提供给内存?

0 个答案:

没有答案