Установите дату истечения срока действия изображения в asp.net

Использование asp.net в визуальных студиях и IIS7, когда я получаю хост.

У меня есть папка, полная значков, которые редко меняются и используются на каждой странице. Есть ли способ установить срок действия определенного каталога примерно раз в 2 часа или около того, чтобы я мог уменьшить количество входящих запросов на сервер?


person Community    schedule 30.01.2010    source источник


Ответы (1)


Вы делаете это в IIS. Если вы используете IIS 7, вы можете добавить заголовок в файл web.config. Он находится в разделе system.webServer.

<staticContent>
    <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>

Это приведет к тому, что для всего статического содержимого заголовок HTTP expires будет установлен на 2020 год. Статическое содержимое означает все, что не обслуживается механизмом ASP.NET, например изображения, файлы сценариев и таблицы стилей.

Или, чтобы использовать относительный срок действия, используйте это:

<staticContent>
    <clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>

Это приведет к тому, что весь статический контент будет иметь HTTP-заголовок expires, установленный на 2 дня.

person Gabriel McAdams    schedule 30.01.2010
comment
Как сказать, возвращайтесь через 4 часа или в полночь каждого дня? Я бы хотел праздничные темы и тому подобное. - person ; 30.01.2010
comment
Если вы хотите иметь возможность менять изображения в любое время, есть 2 варианта. 1) Используйте описанный выше метод и измените URL-адрес при смене изображений и измените их обратно в конце праздника. 2) Установите дату истечения срока действия меньше. - person Gabriel McAdams; 30.01.2010
comment
Это похоже на фиксированную дату. Не могу ли я установить его относительным или использовать код, чтобы изменить его? - person ; 31.01.2010
comment
Я добавил, как сделать это относительно моего ответа - person Gabriel McAdams; 31.01.2010
comment
В качестве информации: этот параметр, похоже, не влияет на встроенный сервер разработки (по крайней мере, VS 2010 SP1). Если вы сомневаетесь, почему это не работает, обратитесь в IIS. - person ; 19.04.2011
comment
есть идеи, почему он не устанавливает кеш для моего флеш-баннера и моего значка? - person danfromisrael; 13.05.2011