【发布时间】:2013-11-29 13:31:26
【问题描述】:
我花了一整天,没有任何效果。我在这里看到了至少 20 篇关于同一主题的帖子,它们因不同的建议而有所不同,对我来说没有任何用处。 使用 Python 2.7.+ 运行 Django 1.6 我正在尝试从 django 教程中加载民意调查应用程序的 css。
项目布局
Project
|-polls
|-static
|-polls
style.css
|static
这里是settings.py
STATIC_URL = '/static/'
STATIC_ROOT = '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/static'
模板代码
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}">
urls.py
urlpatterns = patterns(...)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
投票/urls.py
urlpatterns = patterns(....,url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),)
运行后:python manage.py collectstatic,所有东西都被收集起来,根目录下的静态文件夹会相应地填充管理员和轮询文件夹和文件。
我启动服务器:python manage.py runserver 一切正常,除了 css 没有加载
这是我在检查 html 时从 Chrome 控制台得到的结果
....
<link rel="stylesheet" type="text/css" href="/static/polls/style.css">
....
看起来不错,但输出如下
[16/Nov/2013 00:44:41] "GET / HTTP/1.1" 404 2141
[16/Nov/2013 00:44:45] "GET /polls/ HTTP/1.1" 200 820
[16/Nov/2013 00:44:45] "GET /static/polls/style.css HTTP/1.1" 404 1649
任何帮助将不胜感激。我一步一步地跟着一切。我不知道该怎么办了
更新
DEBUG=True
完整的 urls.py
from django.conf.urls import patterns, include, url
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin
from PoolsDjangoProject import settings
from django.conf.urls.static import static
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'PoolsDjangoProject.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^polls/', include('polls.urls', namespace='polls')),
url(r'^admin/', include(admin.site.urls)),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
完整的投票/urls.py
从 django.conf.urls 导入模式,url 导入视图
urlpatterns = patterns('',
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>\d+)/results/$', views.ResultsView.as_view(),name='results'),
url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote', name='votes'),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/home/bri6ko/DjangoProjects/django1.6/PoolsDjangoProject/'}),
)
当我尝试访问时
http://127.0.0.1:8000/static/polls/style.css
我明白了
Page not found (404)
'polls/style.css' could not be found
【问题讨论】:
-
如果您在浏览器中请求 css 页面,django 会显示什么错误消息(完整)?
-
DEBUG是真是假? -
发布您的整个 urls 文件 - 看起来您可能错过了使用 devserver 提供静态文件的设置
-
将“polls/urls.py”静态模式移动到“urls.py”并重启django服务器;也执行
manage.py collectstatic -
您的
STATIC_ROOT缺少尾部斜杠
标签: django file css python-2.7 static