1

URLのセクションを使用して、アプリケーションで使用されているリソースのキャッシュバスティングと追跡バージョンを支援したい

つまり、リソースが個別に保持され、nginxによって提供されるWebアプリがあるということです。リソースはフォルダに保存されます:

app_name/img/sprites.png
app_name/css/compressed.css
app_name/scripts/mini.app.js

次に、これらを次の形式のURIで参照します。

/app_name/#{version}/img/sprites.png

多分

/#{version}/app_name/img/sprites.png

ここで、#{version}はロードするリソースのバージョンです。

次に、リソースをファイルシステム内の同じ場所に常に保持し、nginxを使用して常に同じファイルを指すようにします。

4

1 に答える 1

4

これらの3つのサブディレクトリが必要であり、リソースが見つからない場合は404を返すと仮定すると、正規表現の場所try_filesを使用してこれを行うことができます。

# /app_name/#{version}/img/sprites.png urls:
location ~ ^/app_name/[^/]+(?<resource>/(img|css|scripts)/.+) {
  try_files /app_name$resource =404;
}

# /#{version}/app_name/img/sprites.png urls:
location ~ ^/[^/]+(?<resource>/app_name/(img|css|scripts)/.+) {
  try_files $resource =404;
}

リストされている3つだけでなく、任意のディレクトリと場所を一致させたい場合は、(img | css | scripts)を[^/]+に置き換えることができます。

于 2012-05-21T12:58:51.013 に答える