Вам не нужно использовать Django для непосредственного обслуживания статического контента. Просто ваш сервер направляет 404 запроса на вашу папку изображений в представление Django, где он разделяет имя файла и генерирует соответствующий эскиз, прежде чем перенаправлять обратно на исходный URL (который, мы надеемся, больше не будет 404).
Что касается предложения django-imagekit другого ответа, я не уверен, что он что-то сделает, чтобы динамически генерировать превью изображения на основе URL, но я, безусловно, рекомендую использовать его для всех его функций действительно имеет.
Edit:
Что касается фактической структуры URL, мне кажется, что более типичная /images/filename-120x45.jpg
позволит вам легче отфильтровывать 404 запроса, которые не имеют ничего общего с динамической генерацией миниатюр. Скажем, например, что есть тонны 404 ошибок для /images/original_size_image.jpg
. Вы не хотели бы, чтобы те были перенаправлены в Django, и вы можете сопоставлять только имена файлов этого формата с регулярным выражением. [конец редактирования]
Вы должны быть осторожны с тем, чтобы кто-нибудь знал, что эта функция спамит ваше приложение Django. Они могут потенциально убить его с бесконечным количеством комбинаций размера изображения и имени файла на кончиках пальцев. Вам нужно будет понять, как установить верхние пределы для этих запросов, например, перенаправить обратно на 404, если одно из измерений больше исходного, или даже выяснить, как ограничить запросы для нескольких измерений одного и того же изображения. Может быть, это было то, что вы имели в виду, когда упоминали «блокировку».
Кроме того, я вижу, что вы пометили Apache, но я действительно хотел бы рекомендовать вам предоставлять статический контент через что-то вроде Nginx . Возможно, вы можете отменить дополнительные накладные расходы на запросы динамических изображений, если вы используете статический файловый сервер, который не является полным дерьмом при обслуживании статических файлов.