1

メディアファイルを(登録ユーザーに)アップロードして提供するために、サイトでアプリを作成しました。実際には、ファイルは x-accel-redirect ヘッダーを使用して nginx によって提供されます。

ブラウザがhttp://127.0.0.1:8000/mediacontent/files/abc.pdfなどをダウンロードしようとすると 、「abc.pdf/」への HTTP301 が取得されますが、「/файл.pdf」などのキリル文字がファイルに含まれている場合は、すべて大丈夫です、ブラウザはファイルを取得します!

ADD_SLASHES がパターンに一致しているのに、プレーン ASCII URL に / を追加するのはなぜですか?

それが違いを生む場合、サイトもdjango-cmsに基づいています。

urls.py:

(r'^mediacontent/', include('mediacontent.urls')),

メディアコンテンツ/urls.py:

url(r'^files/(?P<path>.*)$', login_required(serve_mediacontent), name="serve"),

ビュー.py:

def serve_mediacontent(request, path):
    webserver = getattr(settings, 'WEBSERVER', 'nginx')
    if webserver == 'nginx':
        response = HttpResponse()
        response['Content-Type'] = ""
        response['X-Accel-Redirect'] = "/media/files/" + path.encode("utf-8")
        return response
4

0 に答える 0