Django静态文件在默认设置下不加载
我安装了Bitnami Django堆栈,并启用了管理模块,还按照教程为“投票”创建了一个管理菜单。
但是,当我访问/admin/时,页面上全是白色的纯文本,所有的CSS和图片都显示404错误。
我所做的只是:
在settings.py文件中启用了installed_apps:
'django.contrib.admin',
在urls.py文件中取消了注释:
from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),
取消注释。
在settings.py中,我尝试了默认设置,也试过这个:
MEDIA_ROOT = ''
MEDIA_URL = '/media/'
STATIC_ROOT = ''
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
STATICFILES_DIRS = (
os.path.join(SITE_ROOT, 'static/'),
)
但是都没有用,它就是找不到/admin/media/css/等目录下的静态文件。
我确保我的Windows系统路径中包含了Django的/bin目录。我甚至尝试加入了/contrib,但还是没有帮助。
我把Django安装在了:
C:\DjangoStack\apps\django我的项目安装在:
C:\Users\dexter\BitNami DjangoStack projects\Alpha然后我输入:localhost/Alpha/admin来访问管理页面。
2 个回答
我来自BitNami团队,刚刚看到这个问题。我不确定你是不是在用旧版本,但至少在新版本的BitNami DjangoStack中,你只需要确保ADMIN_MEDIA_PREFIX指向/static/admin/,如果你按照这个链接里的说明来做的话。你不需要把静态文件复制到你的项目目录,因为Django会自动使用django/contrib目录里的文件。
不过,目前我们把ADMIN_MEDIA_PREFIX设置为/static/admin/media,因为当应用程序通过Apache服务器提供服务时,行为会有所不同,而不是通过Django自带的服务器。我们意识到这可能会让刚开始接触Django的用户感到困惑,我们正在努力保持新项目的默认配置,同时也让演示项目可以通过Apache来提供服务。
我差点没看到这个答案,直到我重新读了你的问题,最后一行让我注意到了:“我输入:localhost/Alpha/admin去管理。”这说明你所有的URL设置都是错的。
现在,你的设置是:
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
而这些应该是:
MEDIA_URL = '/Alpha/media/'
STATIC_URL = '/Alpha/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
另外,你在STATICFILES_DIRS
里不需要写“static/”。所以把这个设置去掉吧。