1

Django アプリケーションの管理ページにアクセスすると、CSS が のようなアドレスで参照されていることに気付きましたadmin/css/base.css。しかし、管理者の css ファイルが実際にはmedia/css/base.css.

そのため、CSS が管理ページに読み込まれません。これはなぜですか?管理ページの URL に対応するためにサーバー上の CSS ファイルを手動で移動しようとしましたが、管理ページで参照されている CSS URL は相対的である (したがってページごとに変化する) ため、これは信頼できません。

4

1 に答える 1

0

注 - https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-adminに従って、以前の回答は Django 1.4 では非推奨です。

Django 1.4 を使用している場合は、STATIC_URL 設定を適切な場所に向けるだけです。

STATIC_URL = '/static/'

また

STATIC_URL = 'https://bucket-name.s3.amazonaws.com/static/'

管理用の静的ファイルは自動的に STATIC_URL+'admin/' に配置されます。これがおそらく、管理者ファイルが /admin/css で css を参照する理由です。問題は、実際のファイルが /media/css にある理由です。手動でアップロードしましたか? collectstatic はそれらをそこに置きますか? collectstatic を試して、admin/css ファイルが適切な場所に配置されるかどうかを確認してから、それをサーバーにアップロードします。


/static/admin/css は、管理者の css ファイルのデフォルトの場所です。設定は正しいですか?

ADMIN_MEDIA_PREFIX = '/static/admin/'

上記を使用すると、管理者の css ファイルが /static/admin/css に収集されます。

python manage.py collectstatic

指図。に変更すると

ADMIN_MEDIA_PREFIX = '/static/media/'

css ファイルは代わりに /static/media/css に収集されると思います (これはテストしていませんが)。

また、css ファイルを手動で移動しても機能しないのはなぜですか? 私がそれをお勧めするわけではありません (python manage.py collectstatic を使用して、すべての静的ファイルを 1 つの統合された場所に収集する必要があります)、それらを /static/admin/css に移動した場合は、CSS ファイルが参照しているはずです。 、 右?

注意として、ADMIN_MEDIA_PREFIX を絶対にすることもできます。私のものは私のs3バケットに設定されています。

ADMIN_MEDIA_PREFIX = 'https://bucket-name.s3.amazonaws.com/static/admin/'
于 2012-07-29T07:47:51.090 に答える