Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Duda con MEDIA y STATIC

Estas en el tema de Duda con MEDIA y STATIC en el foro de Python en Foros del Web. Hola, Tengo un proyecto donde voy a permitir acceder a los usuarios a una carpeta del sitio. Os explico: el proyecto es un sólo código, ...
  #1 (permalink)  
Antiguo 05/05/2013, 15:10
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Duda con MEDIA y STATIC

Hola,

Tengo un proyecto donde voy a permitir acceder a los usuarios a una carpeta del sitio.
Os explico: el proyecto es un sólo código, y estoy usando el Framework de sitios de Django.

Tengo en la raíz una carpeta que se llama contenido y dentro tengo carpetas con el id de cada web. Ej:

Contenido
-----1
----------static
----------imagenes
-----2
----------static
----------imagenes

y así.

Actualmente estoy sirviendo los archivos css, js e imagenes a través de MEDIA.

¿Hay alguna diferencia entre MEDIA y STATIC? He leído que MEDIA es para lo que suban los usuarios y STATIC para los css, js e imágenes, pero, ¿hay alguna diferencia más? Ya sea caché o algo.

Porque sino, prefiero mantener la estructura como la tengo:

En la carpeta contenido/1/static/css/estilos.css los estilos de la web 1 y así.

En código:
Código Python:
Ver original
  1. MEDIA_ROOT = os.path.join(ABS_PATH + '/contenido/')

Y en las plantillas:
Código HTML:
Ver original
  1. <link rel="stylesheet" href="{{ contenido }}/{{ web.pk }}/static/css/estilos.css" />

¿Alguien me aclara la duda? ¿Que tal como lo estoy haciendo?
Muchas gracias!
__________________
@JaimeMSE - ¡Sígueme!
  #2 (permalink)  
Antiguo 05/05/2013, 16:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Duda con MEDIA y STATIC

La principal diferencia como tu dices es que static es para los archivos css, js, imagenes, etc.. del proyecto, mientras que media es para los archivos que sube el usuario.

Y si es importante tenerlo separados, imagina el caso donde tengas style.css en static, pero como esta compartido con media otro usuario puede llegar, subir otro style.css y romper con el layout del sitio. Este en el mejor de los casos, en peor de los casos pueden cambiar tus archivos de js poniendo tu sitio a todo tipo de vulnerabilidades.

En todo caso te sugiero no mezclar static y media.

Por ultimo no te olvides de checar los permisos del usuario para ver si puede ver/modificar/borrar esa carpeta o archivo.

Otra cosa te recomiendo el template tag static.
  #3 (permalink)  
Antiguo 06/05/2013, 10:49
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Duda con MEDIA y STATIC

Cita:
Iniciado por razpeitia Ver Mensaje
La principal diferencia como tu dices es que static es para los archivos css, js, imagenes, etc.. del proyecto, mientras que media es para los archivos que sube el usuario.

Y si es importante tenerlo separados, imagina el caso donde tengas style.css en static, pero como esta compartido con media otro usuario puede llegar, subir otro style.css y romper con el layout del sitio. Este en el mejor de los casos, en peor de los casos pueden cambiar tus archivos de js poniendo tu sitio a todo tipo de vulnerabilidades.

En todo caso te sugiero no mezclar static y media.

Por ultimo no te olvides de checar los permisos del usuario para ver si puede ver/modificar/borrar esa carpeta o archivo.

Otra cosa te recomiendo el template tag static.
Hola!

Gracias por tu respuesta.

¿Entonces como lo podría hacer?

Porque cada web va a tener acceso a SU media y SU static, pero no se pueden poner más carpetas MEDIA.

¿Cómo lo harías tú? Gracias!
__________________
@JaimeMSE - ¡Sígueme!
  #4 (permalink)  
Antiguo 06/05/2013, 11:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Duda con MEDIA y STATIC

Cita:
Iniciado por JaimeMSE Ver Mensaje
¿Entonces como lo podría hacer?

Porque cada web va a tener acceso a SU media y SU static, pero no se pueden poner más carpetas MEDIA.

¿Cómo lo harías tú?
Claro que media puede tener varias carpetas. Solamente en tus modelos en lugar de tener upload_to='hardcode/path', haces upload_to=path_function donde path_function es una función que defines para que devuelva una ruta dado 2 argumentos, instancia y filename.

Mas información aquí https://docs.djangoproject.com/en/de...ield.upload_to
  #5 (permalink)  
Antiguo 07/05/2013, 02:00
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Duda con MEDIA y STATIC

Hola,

Cierto que así sí que se puede, pero el problema viene siendo que los usuarios van a tener acceso a su css, su js y sus imágenes.

Por lo tanto van a tener acceso a carpetas STATIC y MEDIA. Se me olvidó añadir que no van a tener acceso a ningún template ni nada parecido, por lo tanto sólo podrán modificar su css/js, por lo que no incumbe a las demás webs.
__________________
@JaimeMSE - ¡Sígueme!

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:53.