2017-03-14 6 views
1

私はwebpackを使用してjsファイルを圧縮/ gzipしています。次に、.jsリクエストが入ったときにExpressサーバを使用してそれらのサービスを提供したいと思います。私は開発者の中にいることができます。私は静的なファイルをどのように設定しているかと関係があると感じています。 Assitance?Express.jsと.jsリクエストをインターセプトし、代わりに.gzを提供

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がビルド中であることがわかります。私はエクスプレスサーバが.gzバージョンを提供するようには思えません。

答えて

1

私の推測では、本番環境ではバージョン2.xを使用していますが、devでは3.xを使用しています。 http://51elliot.blogspot.com/2012/08/serve-gzipped-files-with-expressjs.htmlを1として、あなたがそれを見ることができます... 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(); 
}); 

注:私はこれを試したことのない、ただの勘。

+0

ロマン - ありがとう。あなたの注文に間違いがありますか?私がリクエストのためにコンソールにしようとしても、 "* .js"/getルートで何も来ません。 –

+0

@ jamesemanon - あなたはどのバージョンを使用していますか? 1つはセットであり、もう1つはレスポンスであることに注意してください。 –

+0

ファイアウォールの問題でもあります。 –

関連する問題