に根ざした Django コードを持っているとしましょう/var/my_app
。に を設定MEDIA_ROOT
しました。現在はです。UWSGI (または gunicorn など) を介してこれらのファイルを提供すると、問題なく動作します。/var/my_app/files
MEDIA_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
がまだ存在しない場合に ( を使用して) 遅延的に提供することを目的としています。