Создание etags для изображений в asp.net?

На моем сайте пользователи могут загружать изображения, которые отображаются публично. Когда пользователь загружает новое изображение, оно перезаписывает одно из своих старых изображений.

Поскольку изображения могут быть большими, я хочу, чтобы они кэшировались. Однако, когда пользователь загружает новое изображение, старые кэшированные изображения не должны использоваться.

Источник динамического изображения выглядит так:

userImage.ashx?id=f488b864-0a0b-46d9-af4a-a43cd0dcf751&type=micrositePhoto

Поэтому я могу вставить заголовки в ответ в файле.ashx, если мне нужно.

Мне сказали использовать etags для этой цели, но я не знаю, как это сделать в asp.net. .js а также .css файлы на моем сайте уже имеют etags, но я не знаю, что их генерирует. Кроме того, любые встроенные системы для генерации etags, вероятно, не поймут, как работает мой файл.ashx.

Как мне сгенерировать etags для своего сайта и сделать так, чтобы они работали так, как предполагалось?

1 ответ

Решение

Мне кажется, что вы должны быть в состоянии сделать, например:

Response.AddHeader("ETag","\"" + Guid.NewGuid().ToString() + "\"");

ETags должны быть заключены внутри "

ПРИМЕЧАНИЕ. Очевидно, что как только ETag возвращается с изображением, оно должно быть таким же при последующих запросах. Мой код выше был просто доказательством концепции.:)

Изменить: Да, только что проверил и подтвердил с помощью Firebug, что заголовки ответа содержат Guid, который я создал.

Другие вопросы по тегам