0

最近几天我一直在研究如何将 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"/>

--源代码本地主机--

<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 的情况下也可以工作。知道我做错了什么吗?

4

2 回答 2

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 文件放在我的应用程序目录中的静态文件夹中。在模板中,我使用的是 {{ STATIC_URL }}/style.css。

于 2013-03-17T16:28:20.153 回答
0

这就是您在静态文件中调用文件的方式

{% static %}

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

设置.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'),
)
于 2013-03-11T09:26:19.293 回答