将 CSS 添加到 Django 1.4 模板的新手指南
Posted
技术标签:
【中文标题】将 CSS 添加到 Django 1.4 模板的新手指南【英文标题】:Newbie Guide For Adding CSS To Django 1.4 Templates 【发布时间】:2012-06-29 09:45:37 【问题描述】:我真的很困惑。我正在使用 Django 1.4,我整天都在寻找这个,似乎最新版本的 Django 中的一切都发生了变化,并且文档根本没有帮助(至少对我来说)。请帮我将 CSS 文件附加到我的模板。
所以,这是我的 settings.py 文件
STATIC_ROOT = 'F:/Django/mysite/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"F:/Django/mysite/mysite/static/",
)
这是我的网址
from django.conf.urls.defaults import *
from myste.views import hello, home
from django.views.static import *
from django.conf import settings
urlpatterns = patterns('',
('^home/$', home)
)
这是观点
def home(request):
return render_to_response('home.html', locals(),context_instance=RequestContext(request))
最后是模板(home.html)
url: STATIC_URL
哦,我不确定应该在我的 TEMPLATE_CONTEXT_PROCESSORS 中放什么,但到目前为止就是这样。
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
)
这是我运行服务器时得到的输出
url:
我知道这些代码中可能存在一些巨大的错误,但那是因为我一直在阅读不同 django 版本的不同来源。是的,我已经阅读了文档,但正如我所说,它对我没有太大帮助。
【问题讨论】:
【参考方案1】:您似乎根本没有阅读说明。需要做的两件重要的事情是 1) 确保 static
处理器位于 TEMPLATE_CONTEXT_PROCESSORS
中,以及 2) 定义一些 URL 以实际为开发中的静态文件提供服务。
这些都没有“在最新版本中改变”。之前的1.3版本有一些改进,但基本原理是一样的。
【讨论】:
【参考方案2】:'django.core.context_processors.media', 'django.core.context_processors.static',
根据this,它们都应该在您的 TEMPLATE_CONTEXT_PROCESSORS 中。这使得 STATIC_URL 在所有使用请求上下文的上下文中都可用。如果您真的阅读了文档,并确保将它们设置为 1.4,您将避免很多此类问题,并为您省去很多麻烦。
您可能想使用render 来省去一些麻烦和打字。我通常只是用render(request, context, template)
将它换成render_to_request(blah),在这种情况下是render(request, locals(), 'home.html')
。
【讨论】:
【参考方案3】:STATIC_URL 不在您的本地范围内,因此通过 locals() 作为您的字典将无济于事。
def home(request):
return render_to_response('home.html', 'STATIC_URL': settings.STATIC_URL,context_instance=RequestContext(request))
或者您可以使用 1.4 中可用的新 static
标记并避免模板中出现这个特殊问题:
% load static from staticfiles %
url: % static "/" %
【讨论】:
以上是关于将 CSS 添加到 Django 1.4 模板的新手指南的主要内容,如果未能解决你的问题,请参考以下文章