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á
'django.core.context_processors.static',
a TEMPLATE_CONTEXT_PROCESSORS
'compressor.finders.CompressorFinder',
a STATICFILES_FINDERS
'compressor',
a INSTALLED_APPS
Obrigado!
Oi,
Precisaremos de um pouco mais de informações sobre sua configuração para ajudá-lo:
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!
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?