2011-03-29 7 views
26

http://docs.djangoproject.com/en/dev/howto/static-files/Django: No se puede hacer STATIC_URL de configuración de la plantilla

Esto sugiere que puedo usar en mi STATIC_URL plantilla para obtener el valor de settings.py.

Plantilla

se ve así:

<link href="{{STATIC_URL}}stylesheets/tabs.css" rel="stylesheet" type="text/css" media="screen" /> 

Settings.py se ve así:

STATIC_ROOT = '' 
STATIC_URL = '/static/' 

Cuando voy a la página que acaba de obtener <link href="stylesheets/tabs.css" es decir, sin STATIC_URL.

¿Qué me estoy perdiendo?

Respuesta

52

usted tiene que utilizar context_instance=RequestContext(request) en su render_to_response, por ejemplo:

return render_to_response('my_template.html', 
          my_data_dictionary, 
          context_instance=RequestContext(request)) 

O utilizar el nuevo acceso directo render

como Dave señaló, debería comprobar si django.core.context_processors.static está en la variable TEMPLATE_CONTEXT_PROCESSORS en entornos .py. Como dijo the docs, está ahí por defecto.

+5

también puede ser necesario añadir el procesador contexto estático – Dave

+0

Gracias por la punta de acceso directo :) –

+2

rendir Después de castigar a mí mismo por alguna vez encontré su pequeño comentario "django.core.context_processors.static" para ser lo más útil que he escuchado en las últimas 24 horas. GRACIAS – rburhum

2

No se recomienda utilizar directamente la variable STATIC_URL. Ver el accepted answer en this question

En lugar de

{{STATIC_URL}}stylesheets/tabs.css 

uso

{% load staticfiles %} 
{% static 'stylesheets/tabs.css' %} 
Cuestiones relacionadas