我有一個模板,base.html
,在其他幾個模板中用於各種視圖。每個模板都以相應的{% extends "base.html" %}
開頭。在基本模板,我想正是如此指定靜態樣式表:STATIC_URL在基礎Django模板中未定義
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/base.css"/>
然而,當它呈現了我的大部分模板的STATIC_URL
值是空的,所以屬性僅僅是href="/base.css"
,這不加載。該變量已針對我已綁定到默認登錄視圖django.contrib.auth.views.login
的模板進行了正確定義,但對於我自己的自定義視圖而言,該變量未定義。
我只是想在開發環境中使用runserver
,所以CSS文件位於應用程序的靜態子目錄中。
下面是我settings.py
相關位,這些都是默認值:
# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)
在我urls.py
我還補充說:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
#...
urlpatterns += staticfiles_urlpatterns()
任何想法我做錯了嗎?據我所知,這是你應該爲開發中的特定應用程序靜態文件提供服務,基於the 1.3 documentation。
這使我朝着正確的方向前進。 (你引用的部分是[here](https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext))我沒有調用'render_to_response' context_instance =的RequestContext(請求)'。 – UltraNurd
不錯!很高興爲您提供幫助;) – danihp
如果您使用的是Django 1.3,則無需手動傳入context_instance。渲染快捷方式將爲您執行此操作:return render(request,'the-template.html',{'foo':'bar'}) – Brandon