Я хочу отключить HTML-кэш для 1 элемента, чтобы он всегда отображался.
Справочная информация:
Мне нужно показать информацию о компаниях, хранящуюся в отдельной базе данных.В sitecore у меня есть 1 элемент, который имеет пользовательский элемент управления, который показывает необходимую информацию и в зависимости от параметра Context я выясняю, какую компанию показывать.
Дерево sitecore выглядит следующим образом:
/sitecore
/content
/home
/company-information
URL-адрес: /show-company-information/[company-name]-[company-id]
.У меня есть модуль конвейера, который анализирует URL-адрес и устанавливает информацию о компании в качестве текущего элемента и добавляет идентификатор компании к HttpContext.Current.Items
.Вот как мой пользовательский элемент управления определяет, какую информацию о компании следует отображать.
Все это прекрасно работает в процессе разработки, но после развертывания на сервере доставки контента оно перестает работать правильно.При первом обращении к странице она кэшируется, и каждый последующий запрос возвращает информацию о компании, которая была кэширована в первый раз.
Мой текущий обходной путь - очистить кэш HTML для элемента company-info
на том же этапе конвейера, который анализирует информацию о компании, но это кажется действительно грязным решением.
Есть ли лучший способ добиться того же результата?
РЕДАКТИРОВАТЬ
Вот как настраивается сайт в файле web.config, а также конфигурация веб-базы данных.:
<site name="website" virtualFolder="/" physicalFolder="/" rootPath="/sitecore/content/Home/" startItem="/home" language="en-GB" database="web" domain="extranet" loginPage="/user-login.aspx" allowDebug="true" cacheHtml="true" htmlCacheSize="400MB" registryCacheSize="500KB" viewStateCacheSize="500KB" xslCacheSize="20MB" filteredItemsCacheSize="20MB" enablePreview="true" enableWebEdit="true" enableDebugger="true" disableClientData="false" />
<!-- CACHE SIZES -->
<cacheSizes>
<sites>
<website>
<html>500MB</html>
<registry>500KB</registry>
<viewState>500KB</viewState>
<xsl>200MB</xsl>
</website>
</sites>
</cacheSizes>
<database id="web" singleInstance="true" type="Sitecore.Data.Database, Sitecore.Kernel">
<param desc="name">$(id)</param>
<icon>Network/16x16/earth.png</icon>
<securityEnabled>true</securityEnabled>
<dataProviders hint="list:AddDataProvider">
<dataProvider ref="dataProviders/main" param1="$(id)">
<disableGroup>publishing</disableGroup>
<prefetch hint="raw:AddPrefetch">
<sc.include file="/App_Config/Prefetch/Common.config" />
<sc.include file="/App_Config/Prefetch/Web.config" />
</prefetch>
</dataProvider>
</dataProviders>
<indexes hint="list:AddIndex">
<index path="indexes/index[@id='articleIndex']" />
</indexes>
<proxiesEnabled>false</proxiesEnabled>
<proxyDataProvider ref="proxyDataProviders/main" param1="$(id)" />
<archives hint="raw:AddArchive">
<archive name="archive" />
<archive name="recyclebin" />
</archives>
<Engines.HistoryEngine.Storage>
<obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel">
<param connectionStringName="$(id)" />
<EntryLifeTime>30.00:00:00</EntryLifeTime>
</obj>
</Engines.HistoryEngine.Storage>
<cacheSizes hint="setting">
<data>400MB</data>
<items>400MB</items>
<paths>10MB</paths>
<standardValues>1MB</standardValues>
</cacheSizes>
</database>
</databases>
Структура макетов страниц:
layout - no output caching
- sublayout - no caching options ticked
- offending sublayout - no caching options ticked
Мы делаем что-то не так, чтобы кэширование было таким агрессивным?