Estou confuso static root
e quero esclarecer as coisas.
Para servir arquivos estáticos no Django, o seguinte deve estar em settings.py
e urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Caminho absoluto para o diretório em que os arquivos estáticos devem ser coletados
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Prefixo da URL para arquivos estáticos
STATIC_URL = '/static/'
3. Locais adicionais para arquivos estáticos
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... e nas urls.py
seguintes linhas:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Nós também usamos python manage.py collectstatic
Questões:
Alguém poderia me explicar o fluxo de trabalho: como as coisas devem ser feitas idealmente. A partir de agora, copio / colo os trechos de código acima nos locais designados e continuo criando novos arquivos no diretório estático e ele funciona. No meu
settings.STATIC_ROOT
, no entanto, apontei para um diretório diferente.Seria ótimo se alguém pudesse explicar o fluxo de trabalho de cada configuração: como os arquivos são coletados e gerenciados e qual seria uma boa prática a seguir.
Obrigado.
if settings.DEBUG:
django não é muito bom para servir mídia estática; isso deve ser deixado para um servidor da web real.