[Python-es] [CONSULTA]static files

Pablo Ezequiel Ferreyra pabloeferreyra en gmail.com
Lun Sep 1 04:40:54 CEST 2014


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


El 31/08/14 a las 23:00, Ricardo Azpeitia Pimentel escibió:
> 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/ <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.
> 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 
> <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.
>
> 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 
> <pabloeferreyra en gmail.com <mailto:pabloeferreyra en gmail.com>> escribió:
>
>     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>


Más información sobre la lista de distribución Python-es