Soy un novato de Django que trabaja en mi primer proyecto y tiene un problema con los archivos estáticos.Los archivos estáticos de Django no se cargarán
He creado un sistema de autenticación simple usando django.contrib.auth
que consta de dos plantillas: mysite/templates/index.html
y mysite/templates/registration/login.html
. Tengo contenido estático global en mysite/static
al que deseo poder acceder en todas las plantillas presentadas por todas las aplicaciones.
mysite/templates/index.html
contiene <img src="{{ STATIC_URL }}pics03.jpg"/>
que hace que "static/pics03.jpg"
y cargas bien cuando vuelva a la url localhost:8000/
mysite/templates/registration/login.html
contiene <img src="{{ STATIC_URL }}pics03.jpg"/>
que también se renderiza como "static/pics03.jpg"
y no se carga cuando vuelva a la url "localhost:8000/accounts/login/"
En mis URL. py tengo:
urlpatterns = patterns('',
url(r'^$', 'mysite.views.home'), # plays index.html template
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
En mi settings.py tengo:
PROJECT_DIR = os.path.dirname(__file__)
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.
os.path.join(PROJECT_DIR,'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATIC_URL = '/static/'
STATIC_ROOT = ''
Yo tenía la impresión de que Django debería estar buscando contenido estático global en STATICFILES_DIRS, pero no encuentra el contenido estático para login.html incluso si cambio de la url de allí a una ruta absoluta a la carpeta estática ¿Alguien puede aclarar esto?
sí, este es el problema ... ¡gracias! – JimJay
Bueno, en realidad en este último caso es necesario ajustar esa regla. Si echas un vistazo al código de django, verás que la vista no hace ninguna comprobación de DEPURACIÓN. –
La vista nunca se ve afectada porque su servidor web está configurado para capturarlos y servir archivos estáticos, por lo que no es necesario verificarlos. – krs