我正在尝试使用 react-redux-app 设置 webpack-dev-middleware。如果我刷新主页,我会收到 200 状态码。但是如果我在任何其他页面('/signin')上刷新,我会收到 404 错误。
经过一番谷歌搜索,我在 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 提供给内存?