2009-08-31 15 views
5

Alguna configuración:¿Cuáles son las implicaciones para redireccionar imágenes detrás de la etiqueta <image>?

Tenemos algunas imágenes estáticas, públicamente disponibles. Sin embargo, queremos poder hacer referencia a estas imágenes con URL alternativas en la etiqueta de la imagen. Así, por ejemplo, tenemos una imagen con un URL como:

http://server.com/images/2/1/account_number/public/assets/images/my_cool_image.jpg 

Y, queremos insertar esto en nuestra html delante como:

<img src="http://server.com/image/2/my_cool_image.jpg"> 

en lugar de

<img src="http://server.com/images/2/1/account_number/public/assets/images/my_cool_image.jpg"> 

Una solución realmente buena que hemos encontrado es utilizar 301 redirecciones. Ahora, nuestras pruebas han arrojado resultados bastante claros (todos los navegadores de la generación actual funcionan), pero me pregunto si hay algunas advertencias sobre este enfoque que me pueden estar perdiendo.

EDITAR: Para aclarar, el motivo por el que queremos utilizar este enfoque es que también estamos planeando utilizar un host externo para servir recursos, y queremos poder desactivarlo en alguna ocasión. Por lo tanto, tal vez la URL en el sería

http://client.com/image/3/cool_image.jpg 

, además de la forma "predeterminado" de acceder a

+2

Si es posible, recomendaría reescribir la URL en lugar de redirigir. – Kevin

+0

¿Cuál es el motivo por el que desea utilizar las URL alternativas y no las URL reales? – Gumbo

Respuesta

1

El único inconveniente real es una segunda búsqueda DNS y un poco de sobrecarga del servidor para calcular la redirección , que afectan el rendimiento De lo contrario, no puedo pensar en ningún problema con esta técnica.

+1

Um, ¿el cliente tiene que hacer otra ida y vuelta al servidor? Un problema bastante grande allí mismo. – annakata

13

Otra técnica que no requiere un servidor de ida y vuelta es utilizar el equivalente de su servidor HTTP "rewrite engine". Esto le permite especificar, en la configuración del servidor, que las solicitudes de una URL se deben cumplir enviando los resultados de alguna otra URL en su lugar. Esto es más eficiente que decirle al navegador "no, ve a buscar allí".

2

Una posible desventaja puede ser SEO: un nombre de archivo largo y complejo con nombres genéricos de carpetas puede obstaculizar una URL más corta/más ágil.

El problema principal es que habrá una solicitud HTTP adicional para cada imagen. En general, debe intentar minimizar las solicitudes HTTP para mejorar el rendimiento. Creo que debería volver a escribir las URL a las versiones más largas entre bastidores, como han dicho otros.

No tiene que volver a escribir la URL completa con la URL final. Si quieres un poco más de flexibilidad, se puede volver a escribir las imágenes de esta manera:

http://server.com/image/2/my_cool_image.jpg 

reescribirse como:

http://server.com/getImage?id=2&name=my_cool_image.jpg 

A continuación, la secuencia de comandos "getImage" sería leer un archivo de configuración o bien servir hasta el más largo nombre de archivo en server.com u otro de client.com. Solo tiene un viaje al servidor y un poco de sobrecarga en el servidor, imperceptible para el visitante.

Cuestiones relacionadas