Discussion:
[Python-es] [CONSULTA]static files
unknown
2014-09-01 00:23:54 UTC
Permalink
hola gente, pido disculpas, creo que este es el ultimo mail que envio
pidiendo ayuda, pero es que ya me tiene loco este proyecto, y soy
bastante novato por ahora en el mundo de django, aunque gracias a todos
y toda la ayuda, voy aprendiendo bastante sobre este lenguaje, y voy a
poder aplicarlo mejor en los proximos proyectos.

ahora, el problema que tengo, es que no logro entender como configurar
los archivos estaticos, he buscado por google, y por la documentacion
oficial, pero he entrado a callejones sin salida, de los que no he
podido ver la luz del sol.

por lo tanto, recurro una vez mas a su sabiduria para que me ayuden a
resolver esto, por que no se donde estoy fallando, por que en teoria,
esta todo correcto, no se que es lo que falla, pero todo lo que es
static, y estilos css no me los carga ni por que le suplique, me levanta
una pantalla sin ningun tipo de estilo en html, cosa que es bastante
engorroso

comparto mi codigo para que me puedan ayudar, como es costumbre, ya que
esta vez, la consola no me ayuda por que no devuelve nada erroneo
http://github.com/hackerzeta/sistema/
unknown
2014-09-01 02:00:14 UTC
Permalink
Veo un montón de detalles en tu settings, cables hardcodeadas por varios
lados, es un error que todo el mundo comete. Incluso cuando inicie lo
cometí. Pero no es ningún pecado cometer este tipo de errores pero no
tratarlo de corregirlo si lo es o debería de serlo xD.

Volviendo al tema de los archivos estáticos no deberían de ser un tema
complejo. Te voy a explicar rápidamente como funcionan los archivos
estáticos. Que no son temas de django per se, si no de desarrollo web, a lo
que voy es que son conceptos que lo puedes aplicar en django, ruby o rails,
ASP .net o cualquier otro webframework.

Los archivos estáticos, es contenido que se entrega tal y como se encuentra
guardado. Los archivos mas comunes, css, js, imagenes (png, jpg, gif,
etc...) pero en general puede ser cualquier archivo.

Django, divide los archivos estáticos en 2 categorías. Statics y Media.

Statics son archivos estáticos que usa el desarrollador para la aplicación.
Mientras que Media son los archivos estáticos que sube el usuario al
momento de usar la aplicación.

Django ofrece 4 variables básicas para configurar los archivos estáticos.

STATIC_ROOT
STATIC_URL

MEDIA_ROOT
MEDIA_URL

Las variables *_ROOT es simplemente una cadena con la ruta (path) de donde
están esos archivos estáticos.
Ejemplo:
MEDIA_ROOT = '/var/statics/example.com/media/'
STATIC_ROOT = '/var/statics/example.com/static/'

Y las variables *_URL es el fragmento de URL de donde sera servidas.
Ejemplo:
MEDIA_URL = '/media/'
STATIC_URL = '/static/'

Entonces si tengo configurado las variables STATIC_* y hago:
http://www.example.com/static/somefile.txt

Va intentar buscar*:
/var/statics/example.com/static/somefile.txt

(Suponiendo que django sirve los archivos estáticos que es una pésima idea,
excepto si estas en desarrollo.)
* Django tiene algo llamado static finders, realmente no solamente busca en
esa localización, busca en una lista de localizaciones. Ya sea por alguna
definida o inspecciona cada app. Para mas información al respecto lee la
documentación.

Lo mismo ocurre para media.

Como dije antes, django no debería de servir los archivos estáticos. Y tal
vez te preguntes entonces para que le doy la ruta si no va a servir los
archivos estáticos? Bueno lo interesante pasa cuando haces 2 operaciones:
collectstatics, lo que hace es busca todos archivos estáticos de las apps y
de otros lugares (ver static finders) y los pone todos en el STATIC_ROOT.
La otra operación interesante es cuando el usuario sube archivos, a donde
van a parar esos archivos? Obviamente al MEDIA_ROOT y por eso son
necesarias las rutas.

Lo que haces en producción es configurar tu servidor web para que cuando
venga una petición http por /static/ (STATIC_URL) o /media/ (MEDIA_URL)
envié directo los archivos que estén en STATIC_ROO o MEDIA_ROOT
respectivamente. Este tema queda fuera de django, porque es mas de la
configuración de tu webserver.


Suficiente explicaciones, tu problema es que no tienes configurado tu
proyecto para que sirva los archivos estáticos.

Veamos el checklist:
STATIC_ROOT [X]
STATIC_URL [X]
urls.py [ ]

Veo que no tienes configurado django para que responda a las peticiones
HTTP, via /static/. Para activarlas esta explicado en la documentación.
https://docs.djangoproject.com/en/1.6/howto/static-files/#serving-files-uploaded-by-a-user-during-development

Si estas en producción, entonces configura tu webserver para que sirva los
archivos estáticos y no lo haga django.

No necesitas que sea tu ultima vez preguntando, pero no lees mas de como
funciona django (libros, tutoriales, cursos, screencasts, hay un sin fin de
material) seguramente seguirás preguntando, por cualquier problema que te
topes.



El 31 de agosto de 2014, 19:23, Pablo Ezequiel Ferreyra <
Post by unknown
hola gente, pido disculpas, creo que este es el ultimo mail que envio
pidiendo ayuda, pero es que ya me tiene loco este proyecto, y soy bastante
novato por ahora en el mundo de django, aunque gracias a todos y toda la
ayuda, voy aprendiendo bastante sobre este lenguaje, y voy a poder
aplicarlo mejor en los proximos proyectos.
ahora, el problema que tengo, es que no logro entender como configurar los
archivos estaticos, he buscado por google, y por la documentacion oficial,
pero he entrado a callejones sin salida, de los que no he podido ver la luz
del sol.
por lo tanto, recurro una vez mas a su sabiduria para que me ayuden a
resolver esto, por que no se donde estoy fallando, por que en teoria, esta
todo correcto, no se que es lo que falla, pero todo lo que es static, y
estilos css no me los carga ni por que le suplique, me levanta una pantalla
sin ningun tipo de estilo en html, cosa que es bastante engorroso
comparto mi codigo para que me puedan ayudar, como es costumbre, ya que
esta vez, la consola no me ayuda por que no devuelve nada erroneo
http://github.com/hackerzeta/sistema/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140831/60668e36/attachment.html>
unknown
2014-09-01 02:40:54 UTC
Permalink
agradezco tu ayuda man, pero lamentablemente, entendi todo hasta la
parte de la url que me pasas, no se si sera ignorancia mia solamente,
pero no logro entender lo del url pattern
"+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)" que no
se como configurarlo ,por que me esta tirando errores, y la
documentacion no me da respuestasseguras, por lo que he visto, tambien
he vuelto a googlear, y ninguna documentacion que se presenta, me da
vistas diferentes, pero ninguna ayuda realmente, lamentablemente

si me pueden ayudar con configurar el webserver, se los agradeceria, por
que sinceramente, estoy en un bucle muy raro de desentendimiento
Post by unknown
Veo un montón de detalles en tu settings, cables hardcodeadas por
varios lados, es un error que todo el mundo comete. Incluso cuando
inicie lo cometí. Pero no es ningún pecado cometer este tipo de
errores pero no tratarlo de corregirlo si lo es o debería de serlo xD.
Volviendo al tema de los archivos estáticos no deberían de ser un tema
complejo. Te voy a explicar rápidamente como funcionan los archivos
estáticos. Que no son temas de django per se, si no de desarrollo web,
a lo que voy es que son conceptos que lo puedes aplicar en django,
ruby o rails, ASP .net o cualquier otro webframework.
Los archivos estáticos, es contenido que se entrega tal y como se
encuentra guardado. Los archivos mas comunes, css, js, imagenes (png,
jpg, gif, etc...) pero en general puede ser cualquier archivo.
Django, divide los archivos estáticos en 2 categorías. Statics y Media.
Statics son archivos estáticos que usa el desarrollador para la aplicación.
Mientras que Media son los archivos estáticos que sube el usuario al
momento de usar la aplicación.
Django ofrece 4 variables básicas para configurar los archivos estáticos.
STATIC_ROOT
STATIC_URL
MEDIA_ROOT
MEDIA_URL
Las variables *_ROOT es simplemente una cadena con la ruta (path) de
donde están esos archivos estáticos.
MEDIA_ROOT = '/var/statics/example.com/media/ <http://example.com/media/>'
STATIC_ROOT = '/var/statics/example.com/static/
<http://example.com/static/>'
Y las variables *_URL es el fragmento de URL de donde sera servidas.
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
http://www.example.com/static/somefile.txt
/var/statics/example.com/static/somefile.txt
<http://example.com/static/somefile.txt>
(Suponiendo que django sirve los archivos estáticos que es una pésima
idea, excepto si estas en desarrollo.)
* Django tiene algo llamado static finders, realmente no solamente
busca en esa localización, busca en una lista de localizaciones. Ya
sea por alguna definida o inspecciona cada app. Para mas información
al respecto lee la documentación.
Lo mismo ocurre para media.
Como dije antes, django no debería de servir los archivos estáticos. Y
tal vez te preguntes entonces para que le doy la ruta si no va a
servir los archivos estáticos? Bueno lo interesante pasa cuando haces
2 operaciones: collectstatics, lo que hace es busca todos archivos
estáticos de las apps y de otros lugares (ver static finders) y los
pone todos en el STATIC_ROOT. La otra operación interesante es cuando
el usuario sube archivos, a donde van a parar esos archivos?
Obviamente al MEDIA_ROOT y por eso son necesarias las rutas.
Lo que haces en producción es configurar tu servidor web para que
cuando venga una petición http por /static/ (STATIC_URL) o /media/
(MEDIA_URL) envié directo los archivos que estén en STATIC_ROO o
MEDIA_ROOT respectivamente. Este tema queda fuera de django, porque es
mas de la configuración de tu webserver.
Suficiente explicaciones, tu problema es que no tienes configurado tu
proyecto para que sirva los archivos estáticos.
STATIC_ROOT [X]
STATIC_URL [X]
urls.py [ ]
Veo que no tienes configurado django para que responda a las
peticiones HTTP, via /static/. Para activarlas esta explicado en la
documentación.
https://docs.djangoproject.com/en/1.6/howto/static-files/#serving-files-uploaded-by-a-user-during-development
Si estas en producción, entonces configura tu webserver para que sirva
los archivos estáticos y no lo haga django.
No necesitas que sea tu ultima vez preguntando, pero no lees mas de
como funciona django (libros, tutoriales, cursos, screencasts, hay un
sin fin de material) seguramente seguirás preguntando, por cualquier
problema que te topes.
El 31 de agosto de 2014, 19:23, Pablo Ezequiel Ferreyra
hola gente, pido disculpas, creo que este es el ultimo mail que
envio pidiendo ayuda, pero es que ya me tiene loco este proyecto,
y soy bastante novato por ahora en el mundo de django, aunque
gracias a todos y toda la ayuda, voy aprendiendo bastante sobre
este lenguaje, y voy a poder aplicarlo mejor en los proximos
proyectos.
ahora, el problema que tengo, es que no logro entender como
configurar los archivos estaticos, he buscado por google, y por la
documentacion oficial, pero he entrado a callejones sin salida, de
los que no he podido ver la luz del sol.
por lo tanto, recurro una vez mas a su sabiduria para que me
ayuden a resolver esto, por que no se donde estoy fallando, por
que en teoria, esta todo correcto, no se que es lo que falla, pero
todo lo que es static, y estilos css no me los carga ni por que le
suplique, me levanta una pantalla sin ningun tipo de estilo en
html, cosa que es bastante engorroso
comparto mi codigo para que me puedan ayudar, como es costumbre,
ya que esta vez, la consola no me ayuda por que no devuelve nada
erroneo http://github.com/hackerzeta/sistema/
_______________________________________________
Python-es mailing list
Python-es en python.org <mailto:Python-es en python.org>
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140831/c35f58d8/attachment.html>
unknown
2014-09-01 02:56:06 UTC
Permalink
La parte de las urls:

Mas o menos así se ve un urlconf

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
# Las urls de tu apps
)

if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,
document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Recuerdas que haces las urls.py? Ligan un patrón de urls con una vista.
Esto es exactamente lo que estamos haciendo aquí. En este caso el patron es
STATIC_URL y MEDIA_URL, pasamos tambien el document root en este casoo
STATIC_ROOT Y MEDIA_ROOT respectivamente y la función static se encarga de
generar la todas las cosas necesarias para que pueda servir contenido
estático.

Esto es perfecto para el caso de desarrollo.

Para el caso de producción:

Configura tu servidor web, en el caso especifico de nginx.

location /static/ {
alias /var/example.com/static/;
}

Donde /var/example.com/static/ es tu STATIC_ROOT, lo mismo funciona para
media.

Para apache ha de ser alguna configuración similar. Para cualquier otro
webserver le la documentación del webserver.


El 31 de agosto de 2014, 21:40, Pablo Ezequiel Ferreyra <
agradezco tu ayuda man, pero lamentablemente, entendi todo hasta la parte
de la url que me pasas, no se si sera ignorancia mia solamente, pero no
logro entender lo del url pattern
"+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)" que no
se como configurarlo ,por que me esta tirando errores, y la documentacion
no me da respuestasseguras, por lo que he visto, tambien he vuelto a
googlear, y ninguna documentacion que se presenta, me da vistas diferentes,
pero ninguna ayuda realmente, lamentablemente
si me pueden ayudar con configurar el webserver, se los agradeceria, por
que sinceramente, estoy en un bucle muy raro de desentendimiento
Veo un montón de detalles en tu settings, cables hardcodeadas por varios
lados, es un error que todo el mundo comete. Incluso cuando inicie lo
cometí. Pero no es ningún pecado cometer este tipo de errores pero no
tratarlo de corregirlo si lo es o debería de serlo xD.
Volviendo al tema de los archivos estáticos no deberían de ser un tema
complejo. Te voy a explicar rápidamente como funcionan los archivos
estáticos. Que no son temas de django per se, si no de desarrollo web, a lo
que voy es que son conceptos que lo puedes aplicar en django, ruby o rails,
ASP .net o cualquier otro webframework.
Los archivos estáticos, es contenido que se entrega tal y como se
encuentra guardado. Los archivos mas comunes, css, js, imagenes (png, jpg,
gif, etc...) pero en general puede ser cualquier archivo.
Django, divide los archivos estáticos en 2 categorías. Statics y Media.
Statics son archivos estáticos que usa el desarrollador para la aplicación.
Mientras que Media son los archivos estáticos que sube el usuario al
momento de usar la aplicación.
Django ofrece 4 variables básicas para configurar los archivos estáticos.
STATIC_ROOT
STATIC_URL
MEDIA_ROOT
MEDIA_URL
Las variables *_ROOT es simplemente una cadena con la ruta (path) de
donde están esos archivos estáticos.
MEDIA_ROOT = '/var/statics/example.com/media/'
STATIC_ROOT = '/var/statics/example.com/static/'
Y las variables *_URL es el fragmento de URL de donde sera servidas.
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
http://www.example.com/static/somefile.txt
/var/statics/example.com/static/somefile.txt
(Suponiendo que django sirve los archivos estáticos que es una pésima
idea, excepto si estas en desarrollo.)
* Django tiene algo llamado static finders, realmente no solamente busca
en esa localización, busca en una lista de localizaciones. Ya sea por
alguna definida o inspecciona cada app. Para mas información al respecto
lee la documentación.
Lo mismo ocurre para media.
Como dije antes, django no debería de servir los archivos estáticos. Y
tal vez te preguntes entonces para que le doy la ruta si no va a servir los
collectstatics, lo que hace es busca todos archivos estáticos de las apps y
de otros lugares (ver static finders) y los pone todos en el STATIC_ROOT.
La otra operación interesante es cuando el usuario sube archivos, a donde
van a parar esos archivos? Obviamente al MEDIA_ROOT y por eso son
necesarias las rutas.
Lo que haces en producción es configurar tu servidor web para que cuando
venga una petición http por /static/ (STATIC_URL) o /media/ (MEDIA_URL)
envié directo los archivos que estén en STATIC_ROO o MEDIA_ROOT
respectivamente. Este tema queda fuera de django, porque es mas de la
configuración de tu webserver.
Suficiente explicaciones, tu problema es que no tienes configurado tu
proyecto para que sirva los archivos estáticos.
STATIC_ROOT [X]
STATIC_URL [X]
urls.py [ ]
Veo que no tienes configurado django para que responda a las peticiones
HTTP, via /static/. Para activarlas esta explicado en la documentación.
https://docs.djangoproject.com/en/1.6/howto/static-files/#serving-files-uploaded-by-a-user-during-development
Si estas en producción, entonces configura tu webserver para que sirva
los archivos estáticos y no lo haga django.
No necesitas que sea tu ultima vez preguntando, pero no lees mas de como
funciona django (libros, tutoriales, cursos, screencasts, hay un sin fin de
material) seguramente seguirás preguntando, por cualquier problema que te
topes.
El 31 de agosto de 2014, 19:23, Pablo Ezequiel Ferreyra <
Post by unknown
hola gente, pido disculpas, creo que este es el ultimo mail que envio
pidiendo ayuda, pero es que ya me tiene loco este proyecto, y soy bastante
novato por ahora en el mundo de django, aunque gracias a todos y toda la
ayuda, voy aprendiendo bastante sobre este lenguaje, y voy a poder
aplicarlo mejor en los proximos proyectos.
ahora, el problema que tengo, es que no logro entender como configurar
los archivos estaticos, he buscado por google, y por la documentacion
oficial, pero he entrado a callejones sin salida, de los que no he podido
ver la luz del sol.
por lo tanto, recurro una vez mas a su sabiduria para que me ayuden a
resolver esto, por que no se donde estoy fallando, por que en teoria, esta
todo correcto, no se que es lo que falla, pero todo lo que es static, y
estilos css no me los carga ni por que le suplique, me levanta una pantalla
sin ningun tipo de estilo en html, cosa que es bastante engorroso
comparto mi codigo para que me puedan ayudar, como es costumbre, ya que
esta vez, la consola no me ayuda por que no devuelve nada erroneo
http://github.com/hackerzeta/sistema/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing listPython-es en python.orghttps://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140831/5e431340/attachment.html>
Loading...