に根ざした Django コードを持っているとしましょう/var/my_app。に を設定MEDIA_ROOTしました。現在はです。UWSGI (または gunicorn など) を介してこれらのファイルを提供すると、問題なく動作します。/var/my_app/filesMEDIA_URL/var/my_app/files/files
現在、NGINXtry_filesディレクティブを使用して、UWSGI にヒットすることなくサービスを提供しようとしています。これが私が持っているものです:
location /files/* {
try_files /var/my_app$uri $uri;
}
私の理解では、アクセスしようとしている場合$hostname/files/photos/thumbs/file.jpg、上記のlocation一致$uriは/files/photos/thumbs/file.jpg、NGINX テスト/var/my_app/files/photos/thumbs/file.jpgであり、ファイルが存在する場合はファイルを返す必要があります。
代わりに、その URI にアクセスすると、ファイルが/var/my_app/files/photos/thumbs/file.jpg. 私は何を間違っていますか?のドキュメントを読みましたtry_filesが、明らかに何かを誤解しています。
参考までに、Djangolocationブロックは次のとおりです。
location / {
include uwsgi_params;
uwsgi_param UWSGI_SETENV DATABASE_URL=[redacted]
uwsgi_pass 127.0.0.1:3034;
}
追加されたコンテキスト
この構成は、Django で生成されたサムネイルeasy-thumbnailsがまだ存在しない場合に ( を使用して) 遅延的に提供することを目的としています。