3

を実行した後、ではすべてにアクセスできるが、 ではアクセスできないpython manage.py collectstaticことがわかりました。非常に明確にするために:static/cssstatic/admin

  1. http://mysite.com/static/admin/css/login.cssにアクセスして失敗します
  2. static/adminフォルダを手動でstatic/css
  3. http://mysite.com/static/css/admin/css/login.cssにアクセスして動作します!

URL が/static/admin/css/から/static/css/admin/css/に変更されていることに注意してください。これは、テンプレートが引き続き最初の URL を指しているため、これで問題が解決されないことを意味します。

スタックオーバーフローで静的管理ファイルの提供が100回要求されていることは知っていますが、まだ機能させることができません(コメントを読んだのは私だけではありません)。static/cssフォルダへのアクセスに関するこの奇妙な問題について誰も言及していないようstatic/anyother_folderです.

追加の詳細:

にエラーはありませんcollectstatic。アプリケーションの css に問題はありません。これは私が持っているものですsettings.py):

MEDIA_ROOT = join(PROJECT_ROOT,'../media')
MEDIA_URL = '/media/'
STATIC_ROOT = join(PROJECT_ROOT,'../static')
STATIC_URL = '/static/'

また、非推奨 ADMIN_MEDIA_PREFIXのものも結果なしで試しました。

ADMIN_MEDIA_PREFIX = '/static/admin/'

私のnginx構成はシンプルで明確です。

location /static {
    alias /home/the_home/where_the_static_is/static/;
}
location /media {
    alias /home/the_home/where_the_media_is/media/;
}

Django の最新バージョン (1.4.2) を使用しています。

4

1 に答える 1

1

パフ。だから、ここにありました。/ static /admin/を仮想環境のDjangoインストールにリダイレクトするnginxに別のフォルダーがありました。組織では、Djangoプロジェクトを事前構成する仮想マシンテンプレートを使用しています。それで、nginx構成を再検討すると、私はこれを見つけました:

location /static/admin {
   alias /path/to/virtualenvs/my_virtualenv/path_to_the_static_admin;
}

どうやらこれはDjango1.3で機能したようですが、ある時点でパスが変更されました。

于 2012-11-19T18:19:30.990 に答える