ブラウザのキャッシュを介した Nginx と js/css のバージョン管理

ブラウザのキャッシュを介した Nginx と js/css のバージョン管理

js/css ファイルが更新されたときにブラウザのキャッシュを簡単にクリアしたい。

実際のファイルの場所:

  • /js/いくつかのファイル.js
  • /css/いくつかのファイル.css

ブラウザから呼び出されるアプリで設定されたファイルの場所:

  • /js/v1/some-files.js
  • /css/v1/いくつかのファイル.css

私は次のことを試しましたが、/js/v1/some-files.js404 を返します。

location ~ ^/(js|css)/v[0-9]+/(.*)$ {
    access_log off;
    expires 7d;
    add_header Cache-Control public;
    try_files $uri $uri/ $1/$2;
}

私が何を間違っているかわかりますか?

答え1

コメントで述べられているように、スラッシュが抜けていたのが原因でした!さらに、位置ブロックは次のように簡略化できます...

location ~ /(js|css)/v[0-9]+/(.*) {
    access_log off;
    expires 7d;
    add_header Cache-Control public;
    try_files $uri $uri/ /$1/$2;
}

関連情報