我真的很困惑。我正在使用Django 1.4,我已经搜索了一整天,似乎在最新版本的Django中一切都发生了变化,文档一点帮助也没有(至少对我来说是这样)。请帮助我附加一个CSS文件到我的模板。
这就是我的settings.py文件
STATIC_ROOT = 'F:/Django/mysite/mysite/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
"F:/Django/mysite/mysite/static/",
)这是我的urls
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的不同来源。是的,我读过文档,但正如我所说的,它对我没有太大帮助。
发布于 2012-06-28 05:40:59
你似乎根本没有读过说明书。要做的两件重要事情是: 1)确保static处理器在TEMPLATE_CONTEXT_PROCESSORS中;2)定义一些URL来实际为开发中的静态文件提供服务。
所有这些都没有“在最新版本中改变”。在之前的1.3版本中有一些改进,但基本原理是相同的。
发布于 2012-06-28 05:39:26
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 "/" %}发布于 2012-06-28 05:40:38
'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(诸如此类),在本例中就是render(request, locals(), 'home.html')。
https://stackoverflow.com/questions/11235045
复制相似问题