img files debug django django-templates django-staticfiles

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()