Django-compressor: Django no recupera archivos comprimidos cuando Debug se establece en False

Creado en 22 dic. 2012  ·  5Comentarios  ·  Fuente: django-compressor/django-compressor

Entonces obtuve django-compressor trabajando en desarrollo con Debug = False. Sin embargo, una vez que configuro Debug = True, django-compressor parece generar las URL correctas, los archivos y todo, pero Django devuelve un 404 para esos archivos.

yo tengo

STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

y dentro de la carpeta static_media en mi proyecto, puedo ver el archivo CACHE / css / bfdeac875f7a.css que fue creado por el compresor.

Dentro del archivo HTML generado, también puedo ver

<link rel="stylesheet" href="/static/CACHE/css/bfdeac875f7a.css" type="text/css" />

pero cuando se carga la página, runserver dice:

[21/Dec/2012 22:28:44] "GET /static/CACHE/css/bfdeac875f7a.css HTTP/1.1" 404 276

¿Me estoy perdiendo de algo? Ya tengo

  • agregó 'django.core.context_processors.static', a TEMPLATE_CONTEXT_PROCESSORS
  • agregó 'compressor.finders.CompressorFinder', a STATICFILES_FINDERS
  • agregó 'compressor', a INSTALLED_APPS

¡Gracias!

Comentario más útil

Lo siento, no puedo creer que me perdí eso antes: de alguna manera leí que tuviste problemas cuando DEBUG es _Verdadero_.

De todas formas. Cuando DEBUG = False, su servidor de ejecución, por defecto, se negará a servir archivos estáticos por sí mismo, debido a problemas de rendimiento y seguridad. Esto es para evitar que lo use en producción. Para poder probar correctamente sus archivos estáticos localmente cuando DEBUG es False, debe pasar el indicador --insecure al servidor de ejecución, como se documenta aquí: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- inseguro

¿Eso soluciona tu problema?

Todos 5 comentarios

Hola,

Necesitaremos un poco más de información sobre su configuración para ayudarlo a:

  • Su configuración de COMPRESS_ *, configuración de STATIC_URL, configuración de STATICFILES_ *
  • ¿Hay staticfiles en su INSTALLED_APPS?
  • ¿Cuál es tu versión de Django?
  • ¿Funcionan correctamente otros archivos estáticos? Estás usando el servidor de ejecución para servirlos, ¿verdad?

Gracias

Hola,

Estoy usando Django 1.4.3, con la siguiente configuración:

...

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(PROJECT_DIR, "static_media")

# 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.
    os.path.join(PROJECT_DIR, "static"),
)

# 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',
    'compressor.finders.CompressorFinder',
)

COMPRESS_PRECOMPILERS = (
    ('text/coffeescript', 'coffee --compile --stdio'),
    ('text/x-scss', 'sass --scss {infile} {outfile}'),
)

...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
    ...
    'compressor',
    ...
)

...

Los archivos que puse manualmente dentro de static_media son inaccesibles desde /static/ url, por lo que no debo haber configurado correctamente los archivos estáticos ... También migré desde Django 1.3, si eso importa. ¿Tendrías una corazonada de lo que debería intentar?

Además, runserver recupera con éxito los archivos en mi carpeta static_media cuando Debug es verdadero, pero falla cuando es falso ...

Lo siento, no puedo creer que me perdí eso antes: de alguna manera leí que tuviste problemas cuando DEBUG es _Verdadero_.

De todas formas. Cuando DEBUG = False, su servidor de ejecución, por defecto, se negará a servir archivos estáticos por sí mismo, debido a problemas de rendimiento y seguridad. Esto es para evitar que lo use en producción. Para poder probar correctamente sus archivos estáticos localmente cuando DEBUG es False, debe pasar el indicador --insecure al servidor de ejecución, como se documenta aquí: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- inseguro

¿Eso soluciona tu problema?

Oh Dios mío, mi culpa. Inadvertidamente había cambiado "Verdadero" y "Falso" en mi pregunta original, ¡perdón por la confusión!

¡Y muchas gracias, eso resuelve el problema!

¿Fue útil esta página
0 / 5 - 0 calificaciones