Serve Gzip Files in Node Throws Net: :Err_Content_Decoding_Failed in Browser
I'm Trying to Follow This in Order to Serve Some Static Compressed Files. I'm Using Webpack Compression Plugin to Generate the Gzip Files. New...
I'm trying to follow this in order to serve some static compressed files.
I'm using webpack compression plugin to generate the gzip files.
new CompressionPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: /\.(js|css)$/,
deleteOriginalAssets: true
})
On my server I have this middleware.
app.get('*.js', function (req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
next();
});
When I'm running the app, in browser I'm getting GET net::ERR_CONTENT_DECODING_FAILED
Probably, I still have to do something more but no idea what exactly.
Thank you, Ionut
1 Answer
Looks like you're missing the content type. Use this code in your express server:
app.get('*.js', function(req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
res.set('Content-Type', 'text/javascript');
next();
});
app.get('*.css', function(req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
res.set('Content-Type', 'text/css');
next();
});