Django 1.4にアップグレードしたばかりで、開発サーバーでの静的ファイルとメディアファイルの新しい「改善された」サービスに深刻な問題があります。私は Django が大好きですが、いったいなぜ彼らが STATIC_URL、STATIC_ROOT、STATICFILES_DIR を使用してこれらのファイルの提供を 2 倍複雑にしたのかは、まったく理解できません。
私は単に、開発サーバー上で静的およびアップロードされたすべてのファイルを提供しようとしています。多くの実験の後、STATIC_URL ファイルが機能していますが、MEDIA_URL ファイルも同様に提供されることはありません。
設定:
DIRNAME = os.path.dirname(__file__)
MEDIA_ROOT = os.path.join(DIRNAME, 'media/')
MEDIA_URL = '/media/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
メディア プロセッサと静的コンテキスト プロセッサを追加しました。
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
'django.core.context_processors.media',
'django.core.context_processors.static',
"django.core.context_processors.request",
'satchmo_store.shop.context_processors.settings',
'django.contrib.messages.context_processors.messages',
)
そして、私はURL confsに追加しました:
# serve static and uploaded files in DEV
urlpatterns += staticfiles_urlpatterns()
urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
ドキュメントに示されているように、2 つの conf 設定が追加されています。1 つ目は静的用、2 つ目はメディア用です。
私の構造、ウェブサイトはアプリであり、djangoprojectの指示に従ってその中に静的ディレクトリが配置されています:
<myproject>
--media
--settings
--templates
--website
|->static
テンプレートでは、静的コンテンツを問題なく提供できます
{{STATIC_URL}}css/style.css
ただし、アップロードされた画像 (これは photologue を使用したもの) は提供されませんが、URL は正しいです。
/media/photologue/photos/cache/spawning-2_admin_thumbnail.jpg
そのディレクトリ構造は media/ の下に存在します
超、超混乱。以前は問題がなかったのに、今ではすべてがとてつもなく複雑に思えます。