0

Django 1.4にアップグレードしましたが、管理者の静的ファイルが読み込まれません。

設定ファイルの関連部分は次のようになります。

MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/media/'

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# URL prefix for admin static files -- CSS, JavaScript and images.
# Make sure to use a trailing slash.
# Examples: "http://foo.com/static/admin/", "/static/admin/".
ADMIN_MEDIA_PREFIX = '/static/admin/'

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

INSTALLED_APPS = (
    # django apps
    'django.contrib.admin',
    'django.contrib.admindocs',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.messages',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.staticfiles',

そして私はcollecstatic-ed。

これで、ファイルはプロジェクトの静的ディレクトリに表示されますが、たとえばhttp:// localhost:8000 / static / admin / js / actions.jsにアクセスしようとすると、「/ usr /local/」が付いた404が表示されます。 lib / python2.7 / dist-packages / django / contrib / admin / media / js /actions.js"は存在しません

djangoが静的ディレクトリではなくメディアディレクトリを検索するのはなぜですか?どうすれば修正できますか?

4

2 に答える 2

1

問題は、実際にはrunserverの代わりにruncserverを使用していて、runcserverがハードコーディングしていることでした。

option_list = BaseCommand.option_list + (
    make_option('--noreload', action='store_false', dest='use_reloader', default=True,
        help='Tells Django to NOT use the auto-reloader.'),
    make_option('--adminmedia', dest='admin_media_path', default='',
        help='Specifies the directory from which to serve admin media.'),
)

try:
    path = admin_media_path or django.__path__[0] + '/contrib/admin/media'

'/ contrib / admin/static'の代わりに

runcserver --adminmedia'static/admin'を使用すると問題が解決します。

于 2012-04-17T22:17:59.507 に答える
0

https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-adminから

Djangoのソースコード内の管理静的ファイルのパスに暗黙的に依存している場合は、そのパスを更新する必要があります。ファイルはdjango /contrib / admin /media/からdjango/contrib / admin / static /admin/に移動されました。

urls.pyを調べます。おそらくそれはこのようなものを含んでいます:

if settings.DEBUG:
    urlpatterns += patterns('',
    url(r'^somepath/(?P<path>.*)$', 'django.contrib.staticfiles.views.serve'),
)
于 2012-04-17T22:12:27.897 に答える