Tengo una plantilla, base.html
, que se utiliza en varias otras plantillas para varias vistas. Cada una de esas plantillas comienza con el {% extends "base.html" %}
apropiado. En la plantilla base, quiero especificar una hoja de estilo estático de esta manera:STATIC_URL indefinido en la plantilla Django base
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/base.css"/>
Sin embargo, cuando se hace la mayor parte de mis plantillas, el valor de STATIC_URL
está vacía, por lo que el atributo no es más que href="/base.css"
, que no se carga . La variable está definida correctamente para la plantilla que he vinculado a la vista de inicio de sesión predeterminada, django.contrib.auth.views.login
, pero para mis propias vistas personalizadas, no está definida.
Estoy intentando que esto funcione en el entorno de desarrollo con runserver
, por lo que el archivo CSS está en el subdirectorio estático de la aplicación.
Éstos son los bits correspondientes de mi settings.py
, que son todos los valores predeterminados:
# 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',
)
En mi urls.py
También he añadido:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
#...
urlpatterns += staticfiles_urlpatterns()
Alguna idea de lo que estoy haciendo mal? Por lo que puedo decir, esto es lo que se supone que debes hacer para servir archivos estáticos específicos de la aplicación en desarrollo, basado en the 1.3 documentation.
Esto me condujo en la dirección correcta. (La sección que citó es [aquí] (https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext)) No estaba llamando 'render_to_response' con' context_instance = RequestContext (solicitud) '. – UltraNurd
¡agradable! feliz de ayudarlo;) – danihp
Si está utilizando Django 1.3, no es necesario que pase manualmente en la instancia de contexto. El atajo de renderizado lo hará por usted: return render (request, 'the-template.html', {'foo': 'bar'}) – Brandon