小编典典

Django无法加载静态CSS文件

django

我正在runserver本地计算机(Mac OS X)上运行Django的开发服务器(),无法加载CSS文件。

以下是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 }}渲染正确:

<link type="text/css" href="{{ STATIC_URL }}css/main.css" />

变成:

<link type="text/css" href="/static/css/main.css"/>

文件实际所在的位置。我还collectstatic确保所有文件都已收集。

我的urls.py中也包含以下几行:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns += staticfiles_urlpatterns()

我是Django的新手,所以可能缺少一些简单的知识-希望对您有所帮助。


阅读 1025

收藏
2020-03-29

共1个答案

小编典典

Is django.contrib.staticfiles in your INSTALLED_APPS in settings.py?

Is DEBUG=False? If so, you need to call runserver with the –insecure parameter:

python manage.py runserver --insecure

collectstatic与通过开发服务器提供文件无关。它用于将静态文件收集到一个位置,STATIC_ROOT以供Web服务器查找它们。实际上,collectstatic将您的STATIC_ROOT设置运行到某个路径STATICFILES_DIRS是一个坏主意。您应该仔细检查以确保您的CSS文件现在甚至存在。

2020-03-29