Django – 无法获取静态CSS文件加载
我在本地计算机(Mac OS X)上运行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 ,以确保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'吗?
DEBUG = False? 如果是这样,您需要使用–insecure参数调用runserver。
'collectstatic'对通过开发服务器提供文件没有任何影响。 它是为了收集静态文件在一个位置(STATIC_ROOT)为您的Web服务器find它们。 事实上,将STATIC_ROOT设置为STATICFILES_DIRS中的path,运行collectstatic是个不错的主意。 你应该仔细检查,确保你的CSS文件现在存在。
另一个简单的尝试是停止,然后重新启动服务器,例如
 $ python manage.py runserver 
我看着其他的答案,但重新启动服务器为我工作。
 这些是你的settings.py缺less的吗? 我正在粘贴我的一个项目设置: 
 TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", "django.contrib.messages.context_processors.messages") 
 此外,这是我在我的urls.py : 
 urlpatterns += patterns('', ( r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': 'static'} )) 
 使用Django 1.11.x +,你必须在settings.pyconfiguration静态文件, 
 STATIC_URL = '/static/' # the path in url STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ] 
并使用它与静态模板标签,
 {% load static %} <link rel="stylesheet" href="{% static 'css/bootstrap.css' %}"> 
这些步骤适用于我,请参阅Django中的加载静态文件(CSS,JS和图像)
我使用Django 1.10。
-  在settings.py的同一级创build一个static文件夹,我的settings.py的path是~/djcode/mysite/mysite/settings.py,所以这个目录是~/djcode/mysite/mysite/static/;
-   static创build两个文件夹static_dirs和static_root,即~/djcode/mysite/mysite/static/static_dirs/和~/djcode/mysite/mysite/static/static_root/;
- 
像这样写 settings.py:# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'mysite', 'static', 'static_root') STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'mysite', 'static', 'static_dirs'), )
- 
在shell中执行这个命令 $ python manage.py collectstatic;
- 
在 static_dirs创build一个文件夹css并放到你自己的.css文件中,你的css文件的path是~/djcode/mysite/mysite/static/static_dirs/css/my_style.css;
- 
更改 .html文件中的<link>标记:<link rel="stylesheet" type="text/css" href="{% static 'css/my_style.css' %}">
 最后这个链接的path是http://192.168.1.100:8023/static/css/my_style.css 
答对了!
添加
 PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) STATICFILES_DIRS = ( os.path.join(PROJECT_ROOT, "static"), ) 
 并从settings.py删除STATIC_ROOT ,它为我工作 
 在settings.py中添加这个"django.core.context_processors.static",上下文处理器 
 TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.static", 
)
将以下代码添加到您的settings.py
 STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), 
]
之后,在项目的基本目录中创build静态文件夹。
要在模板上加载静态文件,请使用
 {% load static %} <img src="{% static "images/index.jpeg" %}" alt="My image"/> 
你在STATICFILES_DIRS和STATIC_ROOT有相同的path,我遇到了同样的问题,下面是例外 –
错误configuration:STATICFILES_DIRS设置不应包含STATIC_ROOT设置
对于本地你不需要STATICFILES_DIRS,因为无论如何你不需要运行collectstatic。 一旦你评论它,它应该工作正常。
你有没有join你的模板:
 {% load staticfiles %} 
这加载了需要的东西,但由于某种原因,我经历过有时没有这个工作… ???
  DEBUG = True在我的本地设置中为我做了。 
看看你的主应用程序(静态目录所在的位置)是否包含在你的INSTALLED_APPS中。
使用启用的查找器search文件。 缺省情况下,查找STATICFILES_DIRS中定义的所有位置和INSTALLED_APPS设置指定的应用程序的“静态”目录中。
我不得不使用
 STATICFILES_DIRS = ( '/home/USERNAME/webapps/django/PROJECT/static/', ) 
这帮助了我。
我试过这个模型,它的工作。
根据使用shell创build的django项目更改设置
 "django-admin.py startproject xxx"# here xxx is my app name 
修改文件夹如下结构加载我们的静态文件在服务器上运行
xxx的结构是:
 > . > |-- manage.py > |-- templates > | `-- home.html > `-- test_project > |-- __init__.py > |-- settings.py > |-- static > | |-- images > | | `-- 01.jpg > | |-- style.css > |-- urls.py > `-- wsgi.py 
– Settings.py中的修改
 import os INSTALLED_APPS = ( 'xxx',# my app is to be load into it) STATIC_ROOT = '' STATIC_URL = '/static/' PROJECT_DIR = os.path.dirname(__file__) TEMPLATE_DIRS = ( os.path.join(PROJECT_DIR, '../templates'),)#include this 
– 在urls.py中修改
 from django.conf.urls import patterns, include, url from django.views.generic import TemplateView class DirectTemplateView(TemplateView): extra_context = None def get_context_data(self, **kwargs): context = super(self.__class__, self).get_context_data(**kwargs) if self.extra_context is not None: for key, value in self.extra_context.items(): if callable(value): context[key] = value() else: context[key] = value return context urlpatterns = patterns('', url(r'^$', DirectTemplateView.as_view(template_name="home.html")), ) 
– home.html
 <html> <head> <link href="{{STATIC_URL}}style.css" rel="stylesheet" type="text/css"> </head> <body> <h1>This is home for some_app</h1> <img src="{{STATIC_URL}}http://img.dovov.com01.jpg" width=150px;height=150px; alt="Smiley "> </body> </html>