2017-03-04 2 views
0

私のの設定では、圧縮がファイルサイズを縮小する場合に限り、.gzのスクリプトがコンパイルされます。つまり、.jsのスクリプトの一部には.js.gzがあります。ファイルを試して別のファイルにフォールバックする方法は?

拡張の場合は、.gzを試してみることができます。しかし、.js.gzが存在しない場合、どのようにnginxに.jsにフォールバックするように指示しましたか?

app.get('*.js', (req, res, next) => { 
    // eslint-disable-next-line operator-assignment 
    req.url = req.url + '.gz'; 

    res.set('Content-Encoding', 'gzip'); 

    next(); 
}); 

さらに複雑なことに、serve-staticを使用しています。

私が使用してこれを達成することができるだろう:

try_files $uri.gz $uri @404 
+0

は 'サーブ-static'、HTTPS上の問題をオープンします: //github.com/expressjs/serve-static/issues/85。 – Gajus

答えて

1

express-staticが既にあなたが必要なものがすべて揃っている - extensions fallbacks

app.use(express.static(path.join(__dirname, 'public'), { 
    extensions: ['gz'] 
})); 
+0

これは 'try_files $ uri.gz $ uri @ 404'のように動作しません。ファイルが存在しない場合、 'extensions'設定はフォールバックを作成します。ファイルが存在するかどうかを確認するために最初に拡張子を試しません。 – Gajus

関連する問題