Sitecore Caching для SSL + не-SSL подслой - PullRequest
0 голосов
/ 13 мая 2011

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

Для репликации, если вы создаете подслой и в коде позади, отрисовываете URL. Если вы затем добавите этот подслой на страницу через интерфейс sitecore, например: presentation> details и т. Д., Включите кэширование и включите все переменные кэширования. Публикуете ли вы и т. Д., Чтобы страница теперь была доступна для просмотра (также ведет себя так же, если вы делаете это напрямую, вызывая элемент управления с помощью элемента управления sublayout в коде).

Если вы запустите эту страницу в не-ssl режиме (http://URL), вы получите URL, такой как; http://URL... Затем, если вы запустите эту страницу в режиме ssl (https://URL), ваш вывод все равно будет http://URL...

Так кто-нибудь знает способ получить это, чтобы мы кэшировали оба экземпляра.

С уважением, Крис

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Вы можете использовать существующую функциональность VaryByParm , чтобы создать поведение VaryByUrl путем программной установки ключа кэша для подслоя с полным URL-адресом запроса, включая схему.Я полагаю, что это будет тот же процесс, который описан в ответе Марка Урсино: Настройка кэширования подслоя в Sitecore

В качестве примечания, если на мультиязычном сайте с языковыми префиксами следует учитывать, что при использованииSitecore.Context.RawUrl предоставит вам URL-адрес запроса с языковыми префиксами , удаленный действиями шага конвейера StripLanguage preProcessRequest.

Paul

0 голосов
/ 17 мая 2011

Мне кажется, я вижу вашу проблему - вы выводите абсолютные URL-адреса для ваших изображений, и в зависимости от того, используется ли SSL при первом запросе, SSL-URL ваших изображений может или не может быть включен в кэшированный вывод.

Мое первое предложение - по возможности отключить абсолютные URL-адреса.Есть ли причина, по которой они вам нужны?

Моя резервная копия будет указывать вам на конфигурацию renderControls в Web.config.Если мы говорим здесь о подслоях, вы можете создать подкласс подкласса и создать новую фабрику для рендеринга подслоя.Когда вы создаете подкласс подкласса, переопределите его метод GetCacheKey, чтобы добавить флаг, если запрос ssl ...

// если запрос ssl, вернуть base.GetCacheKey () + "# ssl";

Справедливое предупреждение, что я никогда не делал этого, просто делаю обоснованное предложение, основанное на доступных настройках Sitecore и API.

Удачи.

...