2010-12-08 12 views
5

何らかの理由で、いつかdjangoの管理が壊れました。 CSSがありません。ここでDjango AdminはApache経由でCSSリンクを壊していますが、実行サーバーモードで動作します

は私の設定です:

<link rel="stylesheet" type="text/css" href="/admin_media/css/base.css" /> 

が、サイトには、このファイルに私に404を与える:

MEDIA_ROOT = os.path.normpath(os.path.join(SITE_ROOT, 'media/')) 
MEDIA_URL = '/media/' 
ADMIN_MEDIA_PREFIX = '/admin_media/' 

ただし、管理ページで生成された行がまだあります。

そして、私がプロジェクトを表示するためにApacheを使用すると、その問題が発生します。 python manage.py runserverを使用すると、管理者はうまく動作します。

これはなぜ起こっているのでしょうか? - Apacheを再起動しましたが、それは役に立ちませんでした。ここ

iはURLのファイルに持っているものです。

(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), 
+2

Djangoで静的メディアファイルを提供しているのですか、またはApache経由でサービスしていますか?後者の場合は、Apacheの設定でファイルを設定する方法を示したい場合があります。 –

+0

答えを理解する方法を教えてもらえば、私は理解して教えてくれる – mgPePe

答えて

9

[OK]を、私はそれを考え出しました。

プロダクションサーバーの場合は、設定した設定へのリンクを設定する必要があります。

:、あなたが行を追加することで、あなたのサイトに対応したファイルを編集する必要が

ADMIN_MEDIA_PREFIX = '/admin_media/' 

やファイルを探すためにApacheを伝えるために:私にとって、私はsettings.pyファイルで、admin_mediaフォルダを選択しました

これは私のサーバにインストールされているdjango contrib adminへのパスです。サーバーのインストールが異なる可能性がありますので、設定を参照してください。あなたのpythonがターミナルに貼り付けるコピーによってどこにインストールされているかを調べる:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" 

みんなに幸運を!

+1

ありがとう、これは本当に便利な投稿でした。私はADMIN_MEDIA_PREFIXから[Python]/dist-packages/django/contrib/admin/media /へのシンボリックリンクを作成しました。これはApache仮想ホストファイルを編集することなく動作します。 – igniteflow

+0

よく書かれています。私が持っていたのと全く同じ問題を修正しました。 – Cerin

+3

Django 1.4.2では、パスが異なっていることに言及する価値があります。 /usr/local/lib/python2.6/dist-packages/django/contrib/admin/static/admin/ –

関連する問題