Django-compressor: Django não busca arquivos compactados quando Debug é definido como False

Criado em 22 dez. 2012  ·  5Comentários  ·  Fonte: django-compressor/django-compressor

Então, coloquei o django-compressor trabalhando em desenvolvimento com Debug = False. No entanto, depois de definir Debug = True, o django-compressor parece gerar as URLs corretas, arquivos e tudo mais, mas o próprio Django retorna um 404 para esses arquivos.

eu tenho

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

e dentro da pasta static_media em meu projeto, posso realmente ver o arquivo CACHE / css / bfdeac875f7a.css que foi criado pelo compressor.

Dentro do arquivo HTML gerado, também posso ver

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

mas quando a página é carregada, runserver diz:

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

Estou esquecendo de algo? eu já

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

Obrigado!

Comentários muito úteis

Não acredito que perdi isso antes: de alguma forma, li que você teve problemas quando DEBUG é _Verdadeiro_.

Qualquer forma. Quando DEBUG = False, seu servidor de execução irá, por padrão, se recusar a servir arquivos estáticos por conta própria, devido a problemas de desempenho e segurança. Isso evita que você use isso na produção. Para poder testar adequadamente seus arquivos estáticos localmente quando DEBUG for False, você precisa passar o sinalizador --insecure para runserver, como documentado aqui: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- inseguro

Isso resolve o seu problema?

Todos 5 comentários

Oi,

Precisaremos de um pouco mais de informações sobre sua configuração para ajudá-lo:

  • Suas configurações de COMPRESS_ *, configuração de STATIC_URL, configurações de STATICFILES_ *
  • Está staticfiles em seu INSTALLED_APPS?
  • Qual é a sua versão do Django?
  • Outros arquivos estáticos funcionam corretamente? Você está usando o runserver para atendê-los, certo?

Obrigado

Oi,

Estou usando Django 1.4.3, com as seguintes configurações:

...

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

...

Os arquivos que coloquei manualmente em static_media estão inacessíveis do URL /static/ , então não devo ter configurado arquivos estáticos corretamente ... Eu também migrei do Django 1.3, se isso importa. Você teria um palpite sobre o que devo tentar?

Além disso, o runserver busca com sucesso os arquivos em minha pasta static_media quando Debug é verdadeiro, mas falha quando é falso ...

Não acredito que perdi isso antes: de alguma forma, li que você teve problemas quando DEBUG é _Verdadeiro_.

Qualquer forma. Quando DEBUG = False, seu servidor de execução irá, por padrão, se recusar a servir arquivos estáticos por conta própria, devido a problemas de desempenho e segurança. Isso evita que você use isso na produção. Para poder testar adequadamente seus arquivos estáticos localmente quando DEBUG for False, você precisa passar o sinalizador --insecure para runserver, como documentado aqui: https://docs.djangoproject.com/en/1.4/ref/contrib/staticfiles/ #django -admin-option --- inseguro

Isso resolve o seu problema?

Oh Deus, meu mal. Eu tinha inadvertidamente trocado "Verdadeiro" e "Falso" em minha pergunta original, desculpe a confusão!

E muito obrigado, isso resolve o problema!

Esta página foi útil?
0 / 5 - 0 avaliações