0

に根ざした 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がまだ存在しない場合に ( を使用して) 遅延的に提供することを目的としています。

4

0 に答える 0