に動作しますが、問題が何であるかを把握しようとしているいくつかの時間を費やしたが、coudlnt。ここでnginxのtry_filesディレクティブは奇妙な
は私が達成しようとしているものです:
ユーザーがJSファイルを要求すると、私はuglifiedコピーが共有メモリに存在するかどうかを確認し、それがない場合は、それを提供したいです。 uglifiedコピーがない場合は、私は通常のファイルを提供したいと思います。ここで
は、私が場所に持っているものです。
location ~/require/[a-z0-9]+/(.*) {
try_files /dev/shm/uglified/$1 /public/javascripts/$1;
}
あなたが見ることができるように、ユーザーがファイル/require/fe45be18b99f9099efbc98a71f67924aef72d58a/app/require-config.js
を要求した場合、ファイル
/dev/shm/uglified/app/require-config.js
が存在している場合我々は確認する必要があり、それならば、それを果たしますそうです。まあ、それはシンプルに見えますが、doesntの仕事1.
で提供していない場合
が/public/javascripts/
場所からファイルapp/require-config.js
をサーブ。 dev/shm
とpublic
のすべてのファイルが存在します。
しかし:try_filesディレクティブで、この場所は、最初のOT二場合dev/shm
フォルダから
ファイルは、どんなにを務めたことはありません。
ファイル
public
からのファイルは、try_filesディレクティブの2番目の場所にのみ表示されます。
私はちょうどディレクティブで場所の場所を変更するもののtry_files /dev/shm/uglified/$1 /public/javascripts/$1;
は、
try_files /public/javascripts/$1 /dev/shm/uglified/$1;
doesntの仕事を動作します。
誰でも、/ dev/shmのファイルが決して選択されなかった理由とtry_filesディレクティブの場所の順序が重要な理由についてアドバイスできますか? @Richardスミスコメントへ
'パラメータではなく、パス名としてURIを必要としtry_files'。パス名は、ドキュメントルート( 'root'ディレクティブで指定)から作成されます。おそらく、共有メモリーをドキュメント・ルートにマップまたはシンボリックリンクすることができます。 –
ありがとうございます、あなたは解答を見つけるのに役立ちました –