我在本地机器(MacOSX)上运行Django的开发服务器(runserver),无法加载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的新手,所以我可能错过了一些简单的东西——非常感谢您的帮助.

推荐答案

请仔细阅读以下内容: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/

你的INSTALLED_APPS分是django.contrib.staticfiles还是settings.py分?

DEBUG=False吗?如果是,则需要使用--insecure参数调用runserver:

python manage.py runserver --insecure

collectstatic与通过开发服务器提供文件无关.它用于将静电文件收集到一个位置,以便您的Web服务器能够找到它们.事实上,在STATIC_ROOT设置为STATICFILES_DIRS的路径的情况下运行collectstatic不是一个好主意.您应该仔细判断以确保您的CSS文件现在甚至存在.

Django相关问答推荐

管理器不能通过对象上的对象实例访问.保存()

如何在Django中将可选参数传递给视图?

Django:作为模型中的列表元素的字段

django-filter compose 过滤的 url

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

从url参数过滤的Django日期范围返回空查询集

Django 注释(),计数()

重建 Dockerfile 后,Django celery 无法从celery导入名称Celery

如何在 Django 模板视图中显示我的数据?

使用 Django 一次更新多条记录

JSP模板继承

在 django/python 上访问请求标头

如何使用 SQL 的IN等字段上的数组过滤 django 查询集?

Python:获取异常的错误消息

Celery - 在一台服务器上运行不同的工作人员

如何在 Django 中使用动态外键?

找不到 msguniq.确保您安装了 GNU gettext 工具 0.15 或更新版本. (Django 1.8 和 OSX ElCapitan)

AWS Cognito 作为网站的 Django 身份验证后端

Django中GROUP BY中注释的聚合

Django - 指定 Django 管理员应该使用哪个模型管理器