我花了最后几天搞清楚如何将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。 我知道我做错了什么?
答案 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。