2012-04-16 2 views
3

По умолчанию, похоже, что Sitecore не кэширует страницы. В web.config, установите этотКак настроить кеш-контроль заголовка ответа в Sitecore?

<setting name="DisableBrowserCaching" value="false"/> 

и создать процессор трубопровода

page.Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); 
page.Response.Cache.SetCacheability(HttpCacheability.Public); 

, но он не работает, голова ответа остается no-cache. Кстати, я добавляю трубопровод в renderLayout, кто знает? благодаря!

+0

Какую версию Sitecore вы используете? –

ответ

3

Я попытался воспроизвести это, предварительно установив DisableBrowserCaching на true. Это действительно вызовет заголовок без кэша.

Затем я установил его на false и перезагрузил страницу, а заголовок без кэша исчез. Больше ничего не нужно.

Если вы хотите установить заголовки истечения срока действия, вы должны сделать это в IIS в функции заголовков HTTP-ответов.

+0

Спасибо! Я понял. Было <% @ OutputCache Location = "None" VaryByParam = "none"%> в layout.aspx. Вот почему API не работал. Сначала удалите его! – user822211

1

Sitecore имеет 7 уровней кэширования до того, как содержимое будет отображаться как HTML. Вы можете контролировать кеширование на каждом этапе до того, как содержимое будет отображаться. Но верно, что no-cache по умолчанию является истинным.

Это потому, что страницы в Sitecore являются динамическими. Они меняют расположение и содержание в зависимости от текущей ситуации. Особенно, если вы используете устройства (http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/), а при использовании Sitecore DMS контент отображается по-разному для каждого устройства и пользователя.

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

Смежные вопросы