渲染管理静态文件 - DJANGO
我刚开始学习Django,发现管理区域的CSS没有显示出来。首先,我创建了一个带有管理模块的应用,然后我做了以下几步:
我在settings.py文件中把调试模式改成了false,并添加了数据库的凭证。然后:
manage.py syncdb
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
-
manage.py collectstatic
You have requested to collect static files at the destination
location as specified in your settings.
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/base.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/changelists.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/dashboard.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/forms.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/ie.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/login.css'
Copying '/Library/Python/2.7/site-packages/django/contrib/admin/static/admin/css/rtl.css'
(...)
当我启动服务器时,出现了这样的情况:
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[09/Feb/2013 13:57:53] "GET /admin/ HTTP/1.1" 200 3270
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 241, in __call__
response = self.get_response(request)
response = self.get_response(request)
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 153, in get_response
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 153, in get_response
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 228, in handle_uncaught_exception
response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 228, in handle_uncaught_exception
return callback(request, **param_dict)
主页显示“发生了服务器错误。请联系管理员。”我可以访问site.com/admin/,但没有CSS样式。项目文件夹的结构是这样的:
--project
----manage.py
----admin
-------css
-------img
-------js
----project
-------setting.py
-------urls.py
-------wsgi.py
-------__init__.py
1 个回答
1
首先,如果你在运行开发服务器(用 python manage.py runserver
命令),那么你的 DEBUG
设置应该是开启的,也就是设置为 true。此外,看起来你的 STATIC_ROOT
这个设置没有配置好(或者是设置成了项目的根目录——这在你准备上线应用时是不对的)。
在你的 settings.py 文件里,你需要确保 django.contrib.staticfiles
被包含在 INSTALLED_APPS
这个设置里。然后要确保你定义了 STATIC_URL(我想它默认应该是 /static/
)。假设你在使用 django 1.4 并且在 django 的开发服务器上,一切应该都能正常工作,而不需要运行 collectstatic
命令。
可以看看关于 服务静态文件 的文档。值得注意的是,在生产服务器上提供静态文件的过程是不同的。