我正在runserver本地计算机(Mac OS X)上运行Django的开发服务器(),无法加载CSS文件。
runserver
以下是settings.py中的相关条目:
STATIC_ROOT = '/Users/username/Projects/mysite/static/' STATIC_URL = '/static/' STATICFILES_DIRS = ( '/Users/thaymore/Projects/mysite/cal/static', ) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', #'django.contrib.staticfiles.finders.DefaultStorageFinder', ) INSTALLED_APPS = ( # other apps ... 'django.contrib.staticfiles', )
在我的views.py中,我正在请求上下文:
return render_to_response("cal/main.html",dict(entries=entries),context_instance=RequestContext(request))
在我的模板中,{{ STATIC_URL }}渲染正确:
{{ STATIC_URL }}
<link type="text/css" href="{{ STATIC_URL }}css/main.css" />
变成:
<link type="text/css" href="/static/css/main.css"/>
文件实际所在的位置。我还collectstatic确保所有文件都已收集。
collectstatic
我的urls.py中也包含以下几行:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
我是Django的新手,所以可能缺少一些简单的知识-希望对您有所帮助。
Is django.contrib.staticfiles in your INSTALLED_APPS in settings.py?
django.contrib.staticfiles
INSTALLED_APPS
settings.py
Is DEBUG=False? If so, you need to call runserver with the –insecure parameter:
DEBUG=False
insecure
python manage.py runserver --insecure
collectstatic与通过开发服务器提供文件无关。它用于将静态文件收集到一个位置,STATIC_ROOT以供Web服务器查找它们。实际上,collectstatic将您的STATIC_ROOT设置运行到某个路径STATICFILES_DIRS是一个坏主意。您应该仔细检查以确保您的CSS文件现在甚至存在。
STATIC_ROOT
STATICFILES_DIRS