1
これまでのところDjangoのメディアファイルを保護しようとしていたのです!私は単に管理者のユーザーだけがメディアフォルダにアクセスできる場所にしようとしています。ここに私のNginxファイルがあります。DjangoとNginx X-accelリダイレクト
server {
listen 80;
server_name xxxxxxxxxx;
location = /favicon.ico {access_log off; log_not_found off;}
location /static/ {
alias /home/{site-name}/static_cdn/;
}
location /media/ {
internal;
root /home/{site-name}/;
}
location/{
this is setup and working. Didn't include Code though
}
マイURLファイル
urlpatterns = [
url(r'^media/', views.protectedMedia, name="protect_media"),
]
そして、私のビュー
def protectedMedia(request):
if request.user.is_staff:
response = HttpResponse()
response['Content-Type'] = ''
response['X-Accel-Redirect'] = request.path
return response
else:
return HttpResponse(status=400)
これは404見つからないnginxのエラーを生成しています。何かここで露骨に間違って見える?ありがとう!
ところで、私は/ media /をNginx設定のルートURLの最後に追加しようとしました。
あなたの設定を見て、問題はこの回答で特定されているようです:https://stackoverflow.com/a/45774975/1081569保護されたビューには、nginx構成のものと同じURLを使用できません。 –
ありがとう、@PauloAlmeida。あなたが私に送ったリンクにいくつか変更を加えて、それを稼働させることができました! –