Django 1.4静态文件css未应用

时间:2013-03-11 09:17:12

标签: python django django-staticfiles

我花了最后几天搞清楚如何将css文件包含到Django模板中。我仍然没有成功,所以我希望有人可以帮助我。 我有以下设置:

- settings.py -

MEDIA_ROOT = '' 
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'

我没有在STATICFILES_DIRS()中设置任何内容。

- urls.py -

urlpatterns = patterns('', (r'^$', 'reviewsite.views.my_homepage_view'),)
urlpatterns += staticfiles_urlpatterns()

- views.py -

def my_homepage_view(request):
return render_to_response('test.html', context_instance=RequestContext(request))

- test.html模板 -

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/style.css"/>

- 源代码localhost -

<link rel="stylesheet" type="text/css" href="/static/css/style.css"/>

根据Django文档,似乎我已经正确设置了所有内容,但仍未应用css样式。静态文件夹位于其他应用程序所在的正确位置(C:reviews / reviewsite / static)。即使我在test.html模板中对style.css位置(C:reviews / reviewsite / static / css / style.css)进行了硬编码,也不会应用css样式。我检查了style.css,它没有Django。 我知道我做错了什么?

2 个答案:

答案 0 :(得分:0)

这是你在静态

中调用文件的方法
{% static %}

<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}"/>

<强> settings.py

import os
import sys

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
SITE_ROOT = PROJECT_ROOT

MEDIA_ROOT = os.path.join(SITE_ROOT, 'media') 
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    //create staticfiles folder
    os.path.join(SITE_ROOT, 'staticfiles'),
)

答案 1 :(得分:0)

每个人,感谢您的帮助,并对迟到的回复感到抱歉。我尝试了你的建议,但不幸的是它并没有起作用。然而,经过一段时间的尝试,我现在就开始工作了。这对我有用:

- settings.py -

MEDIA_ROOT = ''
MEDIA_ROOT = ''
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = 'http://localhost:8000/static/'

- urls.py -

urlpatterns = patterns('', (r'^$', 'reviewsite.views.my_homepage_view'),)
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT }), )

我现在已将css文件放在我的apps目录中的静态文件夹中。在模板中我使用{{STATIC_URL}} / style.css。