0

我真的很困惑。我正在使用 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 版本的不同来源。是的,我已经阅读了文档,但正如我所说,它对我没有多大帮助。

4

3 回答 3

0

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-27T21:39:25.927 回答
0

'django.core.context_processors.media','django.core.context_processors.static',

根据this,它们都应该在您的 TEMPLATE_CONTEXT_PROCESSORS 中。这使得 STATIC_URL 在所有使用请求上下文的上下文中都可用。如果您真的阅读了文档,并确保将它们设置为 1.4,那么您将避免很多此类问题,并为自己省去很多麻烦。

您可能想使用渲染来省去一些麻烦和打字。我通常只是把它换成 render_to_request(blah)render(request, context, template)在这种情况下是render(request, locals(), 'home.html').

于 2012-06-27T21:40:37.920 回答
0

您似乎根本没有阅读说明。要做的两件重要的事情是 1) 确保static处理器在TEMPLATE_CONTEXT_PROCESSORS其中 2) 定义一些 URL 以实际在开发中为您的静态文件提供服务。

这些都没有“在最新版本中改变”。在之前的版本 1.3 中有一些改进,但基本原理是一样的。

于 2012-06-27T21:40:58.817 回答