No tiene que usar Django para servir el contenido estático directamente. Simplemente haga que su servidor enrute las solicitudes 404 para su carpeta de imágenes a una vista de Django, donde separa el nombre del archivo y genera la miniatura adecuada, antes de redirigir de nuevo a la URL original (que con suerte ya no será un 404).
En cuanto a la sugerencia django-imagekit de la otra respuesta, no estoy seguro de que lo hace nada para que pueda dinámicamente generar los pulgares de imagen basados en URL, pero sin duda recomendamos usarla para todas las funciones que sí tiene.
Editar:
En cuanto a la estructura de la URL real, me siento una más típica /images/filename-120x45.jpg
le permitirá filtrar más fácilmente a cabo 404 solicitudes que no tienen nada que ver con la generación de miniaturas dinámico. Digamos, por ejemplo, que hay toneladas de errores 404 para /images/original_size_image.jpg
. No querría que los enrutaran a Django, y solo podría hacer coincidir los nombres de archivo de ese formato con expresiones regulares. [fin de editar]
Sin embargo, debe tener cuidado al permitir que nadie sepa de esta característica el correo no deseado en su aplicación Django. Podrían matarlo con un número infinito de combinaciones de tamaño de imagen y nombre de archivo en la punta de sus dedos. Tendría que averiguar cómo poner límites máximos a estas solicitudes, como redireccionar a un 404 si cualquiera de las dimensiones es más grande que el original, o incluso averiguar cómo limitar las solicitudes de múltiples dimensiones de la misma imagen. Quizás esto era a lo que estabas llegando cuando mencionaste "bloqueo".
Como acompañamiento, veo que has etiquetado a Apache, pero realmente me gustaría recomendar que sirvas contenido estático a través de algo como Nginx. Tal vez podría negar la sobrecarga adicional de las solicitudes de imágenes dinámicas si usa un servidor de archivos estático que no es completo en el servicio de archivos estáticos.
Si va a crear dinámicamente la uña del pulgar, a continuación, en realidad no es estática, es? –
Lo veo como una miniatura estática cargada de pereza. Una vez que se haya creado, me gustaría el mismo rendimiento que si fuera estático. – Gattster