所以,我正在使用webpack压缩/ gzip我的js文件。然后我想使用我的Express服务器在.js请求进入时为这些服务器提供服务。我有一段时间让它在生产中工作。我能够在开发中。我觉得这与我如何设置静态文件有关。 Assitance?
app.use(express.static(path.join(__dirname, 'build')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
// THIS is not working
app.get("*.js", function (req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
next();
});
我尝试了上面代码的上面,中间等。不工作。我知道我的webpack正在构建它,因为我看到了build文件夹中的输出。我似乎无法让我的快速服务器提供.gz版本。
答案 0 :(得分:1)
我的猜测是,在生产中,您运行的是2.x版,而在开发环境中,您使用的是3.x. 根据{{3}},您可以看到......
对于2.x
// basic URL rewrite to serve gzipped versions of *.min.js files
app.get('*', function (req, res, next) {
req.url = req.url + '.gz';
res.header('Content-Encoding', 'gzip');
next();
});
和3.x:
app.get('*', function (req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
next();
});
注意:我没有试过这个,只是预感。