debug - serving static files django
Recibo un error 404 al intentar cargar URL estáticas directamente en Django (1)
Respuesta corta
Django no sirve STATIC_ROOT en STATIC_URL, a menos que usted lo diga también .
Respuesta larga
Esto debería ser una pregunta frecuente, aquí hay un artículo sobre cómo usar django.contrib.staticfiles a la derecha (disclamer: escrito por mí, apreciado por los comentarios). Es como la documentación pero trata de ser más corto y más pragmático.
Cuando visito la url de mis archivos estáticos (http://127.0.0.1:8000/site_media/static/css/site_base.css) recibo un mensaje de error 404.
404 del registro
[27/Oct/2012 14:14:54] "GET /site_media/static/js/libs/modernizr-2.5.2.min.js HTTP/1.1" 404 1716
[27/Oct/2012 14:34:20] "GET /site_media/static/css/site_base.css HTTP/1.1" 404 1677
Estructura de directorios
mysite
|-- manage.py
|-- mysite
|-- settings
|-- base.py
|-- dev.py
|-- prod.py
|-- site_media
|-- static
|-- css
|-- site_base.css
site_base.html
<link rel="stylesheet" href="{{ STATIC_URL }}css/site_base.css" />
ajustes
TEMPLATE_CONTEXT_PROCESSORS = [
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.request",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.static",
]
STATICFILES_FINDERS = [
''django.contrib.staticfiles.finders.FileSystemFinder'',
''django.contrib.staticfiles.finders.AppDirectoriesFinder'',
''django.contrib.staticfiles.finders.DefaultStorageFinder'',
]
STATIC_URL = "/site_media/static/"
STATIC_ROOT = os.path.join(PROJECT_ROOT, "site_media", "static")
Actualizado:
urls.py
from django.conf import settings
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('''',
url(r"^$", direct_to_template, {''template'' : ''home.html'' }, name="home"),
url(r''^admin/doc/'', include(''django.contrib.admindocs.urls'')),
url(r''^admin/'', include(admin.site.urls)),
url(r''^grappelli/'', include(''grappelli.urls'')),
url(r''^profile/'', include(''profiles.urls'')),
)
urlpatterns += staticfiles_urlpatterns()