--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>
Acho que estas configurações serviriam apenas se você estiver utilizando o django com o servidor interno dele (python manager.py runserver)No caso de usar em produção com um apache ou outro parecido, é melhor deixar o serviço de gerenciamento de arquivos estáticos com ele.Até por questão de performance da aplicação.
Nunca me aprofundei neste tipo de configuração do django tbm.Em 7 de abril de 2011 14:38, willian firmino <willian....@gmail.com> escreveu:
Pessoal, vi que a versão 1.3 do django tem um novo esquema para os
arquivos estaticos, mesmo lendo a documentação não entendi muito bem,
alguem poderia me dar um exemplo de configuração no settings.py e no
urls.py
--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>
Não é só isso!O django.contrib.staticfiles fornece uma api bem definida sobre como trabalhar e administrar arquivos estáticos.Anteriormente, todos os seus arquivos estáticos deveriam ficam em um mesmo lugar no projeto, e não nas Apps. Isso gerava alguns efeitos colaterais, como por exemplo, dificultava a distribuição de Apps que possuíam arquivos estáticos.Agora a gestão dos arquivos estáticos está mais integrada ao Django e parecida com a gestão dos templates.
Em 7 de abril de 2011 17:57, Flávio Correia Lima
<flavio.co...@gmail.com> escreveu:
Em 8 de abril de 2011 07:58, willian firmino
<willian....@gmail.com> escreveu:
Olá Cassio,
Ainda não usei isso, mas pelo o que entendi lendo a documentação, a
idéia é exatamente essa: pegar os arquivos estáticos que estão dentro
das pastas das suas apps e copiá-los p/ a pasta que vc definiu no
settings.
Acho que o objetivo é deixar as aplicações mais "plugáveis", onde cada
app pode ter seus próprios arquivos estáticos e eles são copiados p/ o
local certo através do comando collectstatic.
abs!
--
Okay, agora regredi no entendimento.
Acabei de notar que meus arquivos estão sendo pegos de dentro das apps, não da pasta do projeto como achei que havia configurado.
Sou obrigado a ter um diretorio /static/ dentro de cada app?
Não é possível ter um diretório de statics geral no projeto?
(falando em ambiente de desenvolvimento)
Verdade. Por exemplo, se eu quiser apenas estruturar o design do projeto, não tenho app nem nada, só a página inicial. Ainda assim vou ter que criar uma app pra guardar os statics?
E onde é definido o nome da pasta de statics como static?
--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>
Olá Lucas,
É praticamente isso... a única coisa é que o django não irá mapear
automaticamente essa url definida em MEDIA_URL, vc precisa configurar
isso manualmente em seu servidor (nginx, apache, lighttp, etc..) ou no
seu urls.py, caso use o django.views.static.serve.
No MEDIA_URL vc pode inclusive colocar um link direto apontando pra um
subdomínio ou até outro domínio qualquer (e.g.
http://static.example.com/).
Resumindo, o MEDIA_URL serve apenas pra fins de organização do
projeto, permitindo que vc use ele em seus templates e não precise
alterar o template caso a url dos seus arquivos estáticos mude.
abs!
Robson
Meu settings:
import os
BASEDIR = os.path.abspath(os.path.dirname(__file__) + '../../..')
STATIC_ROOT = BASEDIR + '/static/'
STATIC_URL = '/static/'
MEDIA_ROOT = BASEDIR + '/media/'
#ADMIN_MEDIA_PREFIX = STATIC_URL + "admin_media/"
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"
#Aqui eu estou utilizando o grappelli no admin
# Additional locations of static files
STATICFILES_DIRS = (
("downloads", "/opt/webfiles/stats"),
#<a href="{{ STATIC_URL }}downloads/polls_20101022.tar.gz">
("video", "/opt/webfiles/videos"),
#<a href="{{ STATIC_URL }}video/flynn.flv">
#Com o novo static file vc consegue criar links de diret�rios
)
#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',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
)
Meu template:
{% load static %}
{% get_static_prefix as STATIC_PREFIX %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='UTF-8' />
{% block meta %}
<meta name="description" content="Comprehensive Documentation and
information about HTML.">
<meta name="keywords" content="HTML, tags, commands">
{% endblock meta %}
<title>HTML5</title>
<link rel="stylesheet" href="{{ STATIC_PREFIX }}css/main.css"
type="text/css" />
{% block css %}
{% endblock css %}
</head>
Conclus�o:
Opa, mas n�o tem MEDIA_URL e STATIC_URL no template ???
Sim, a id�ia n�o � s� criar uma varredura dos est�ticos, mas sim
organizar seus links.
� l�gico que utilizar o MEDIA_URL e o STATIC_URL tamb�m funcionam, mas
acredito que seja
apenas para facilitar a migra��o.
Se vc utilizar o get_static_prefix vai notar que tanto faz os arquivos
estarem dentro da sua pasta media ou da static, eles v�o funcionar em
seus templates. Isso � �til para abrir os uploads dos usu�rios na pasta
media. Se o seu diret�rio static estiver dentro de um app, � necess�rio
utilizar o collectstatic.
O comando collectstatic � para manter todos os arquivos est�ticos em
apenas um diret�rio para facilitar a configura��o de um servidor web
(Nginx, Cherokee, Lighthttpd ...) e capturar os arquivos est�ticos dos apps.
Abra�o :D
On 05/18/2011 05:03 PM, Lucas Rezende wrote:
> Agora para eu mesmo me corrigir, me corriJam � com J! HEHE
>
> On May 18, 5:00 pm, Lucas Rezende<lucasgr...@gmail.com> wrote:
>> S� para complementar, pelo que eu li na documenta��o, se voc�
>> especificar o STATIC_URL='/static/' (por exemplo), ele pega o que
>> estiver na pasta "static" do projeto e varre as pastas das apps a
>> procura desse diret�rio. Quando ele encontra, ele move os arquivo que
>> est�o dentro para o diret�rio especificado no STATIC_ROOT para tornar
>> mais f�cil a execu��o.
>>
>> Caso esteja errado, de novo, por favor me corrigam! hehehe
>>
>> Abra�o!
>>
>> On May 18, 4:44 pm, Lucas Rezende<lucasgr...@gmail.com> wrote:
>>
>>
>>
>>
>>
>>
>>
>>> Pelo que eu entendi, o MEDIA_ROOT � o diret�rio que armazanar� os arquivos
>>> de usu�rios (ex.: upload de foto). O MEDIA_URL � o caminho para o
>>> MEDIA_ROOT.
>>> Ex.:
>>> MEDIA_URL='/media/'
>>> Se digitar *www.site.com.br/media/*voc�vai apontar para o que estiver em
>>> *MEDIA_ROOT*, o que torna os arquivos de upload p�blicos.
>>> Por favor, me corrigam se eu estiver errado pois n�o estou certo e gostaria
>>> de entender 100% tamb�m.
>>> Quanto ao STATIC_ROOT, se eu entendi, � um diret�rio utilizado pelo Django
>>> onde ele move temporariamente o que estiver em STATIC_URL para que possa
>>> realizar o processamento.
>>> Novamente, por favor me corrigam se eu estiver errado pois n�o estou certo e
>>> gostaria de entender 100% tamb�m.