Respostas:
Se você estiver usando o servidor de desenvolvimento, siga o guia de como fazer do projeto django para gerenciar arquivos estáticos para configurar sua URL, então referencie seus arquivos de mídia no modelo - digamos, uma imagem dentro de uma pasta de imagens de /site_media/images/foo.gif
.
Em termos mais gerais, você está perguntando como servir um arquivo estático do Django. Se você estiver executando no Apache, você deve ler http://docs.djangoproject.com/en/dev/howto/deployment/modpython/
Se você estiver executando o servidor de desenvolvimento (digamos, em seu laptop), leia http://docs.djangoproject.com/en/dev/howto/static-files/
Observe o grande aviso sobre o servidor de desenvolvimento Django:
Isso também me causou problemas por um tempo (erros 404 não encontrados). O que faltava para mim era editar a STATICFILES_DIRS
tupla em settings.py para me fornecer o seguinte:
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(os.path.dirname(__file__),'media').replace('\\','/'),
)
Isso, então, pegou meus arquivos CSS em uma pasta chamada 'media' que estava no nível superior do meu projeto django.
Eu também tive:
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(certifique-se de ter a liderança /
acima emSTATIC_URL
)
Claro, como dito acima, você precisa ter o arquivo CSS devidamente incluído em seus arquivos html. Eu tinha:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
é desnecessário.
Quais configurações eu preciso fazer para que o Django veja o arquivo css?
Nenhum.
Certifique-se de que o seu modelo inclui o arquivo CSS (como o HTML padrão faz) e coloque o arquivo CSS no servidor de mídia.
Para esclarecer: com o Django, é altamente recomendável que você sirva todas as suas mídias (tudo que não seja html dinâmico) de uma instância de servidor diferente. Como você implementa isso é totalmente com você, mas a maioria das pessoas cria um subdomínio.
Os documentos oficiais do django não me ajudaram. Espero que a postagem do blog " Django: Como servir arquivos estáticos " ajude alguns de vocês.
Bem, a maneira mais fácil de usar css com django é adicioná-lo aos seus modelos como arquivos estáticos.
Mas é um pouco parecido com o ajax, não encontrei nada que diga como incluí-lo de uma forma padrão.
Existe um módulo css-compressor para django se você quiser otimizar seu tamanho.