0

Django で URL を設定する際に問題が発生しています。

メディア ファイルを提供するために、次の Amazon S3 バケットがあります。

https://somebucket.s3.amazonaws.com/

内部のメディア URLsettings.pyを次のように設定します。

MEDIA_URL = https://somebucket.s3.amazonaws.com/media/

内部では、urls.py次のようにコードを設定しました。

urlpatterns += patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
    'document_root': settings.MEDIA_URL}));

私の意図は、画像ファイルをポイントすると、<img src="/media/image.jpg"/>自動的にポイントされるとしましょうhttp://somebucket.s3.amazonaws.com/media/image.jpg

どうやってやるの?多くの方法を試しましたが、常に 404 が返されます。

ただし、ファイルに直接アクセスしようとすると機能しますhttp://somebucket.s3.amazonaws.com/media/image.jpg

4

2 に答える 2

0

なぜあなたはそれをしたいのですか?それは、そもそも外部ストレージを持つという目的のほとんどを無効にします。つまり、すべてのメディアリクエストについて、Django自体を経由して、URLを解決し、S3へのリダイレクトを生成する必要があります。これは、すべてのオーバーヘッドを意味します。

代わりに、sneawoがコメントで示唆しているように、S3URLを介して画像を指すようにimgsrc属性を設定するだけです。

于 2013-02-15T17:04:48.457 に答える
0

django は、imagefield の URL の前に media_url を自動的に追加することが判明しました。

media_url を追加する必要があるという印象を受けていたため、より簡単な解決策を探す必要がありました。

Django 管理者は相対パスのみを表示します

![django admin は相対パスを表示][1]

http://i.stack.imgur.com/aZGPy.png

しかし、tastypie は絶対パスを教えてくれます

http://i.stack.imgur.com/SEdaX.png

もう URL について心配する必要はありません... ありがとうございます :)

于 2013-02-16T01:16:08.747 に答える