전체 페이지 캐시가 블록 캐시를 비활성화하는 이유는 무엇입니까?


13

모든 페이지 (탐색)에 포함 된 정적 부분이 있지만 생성하는 데 시간이 오래 걸립니다. 그래서 캐시 수명과 정적 캐시 키를 설정했습니다.

FPC가 활성화 될 때까지 잘 작동합니다. 그런 다음 새로 호출 된 페이지에 대해 블록이 다시 생성되고 블록 캐시에서 제공되지 않습니다.

이 줄은 Enterprise_PageCache_Model_Observer다음 과 같습니다.

Mage::app()
    ->getCacheInstance()
    ->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); // disable blocks cache

그 이유는 무엇입니까? FPC가 켜져 있어도 특정 블록을 캐시하는 것이 좋습니다. 그렇지 않으면 캐시에서 완전히 제공되지 않은 페이지 생성 속도가 느려집니다.

  1. 그 뒤에 디자인 결정은 무엇입니까?
  2. 그 주위에 좋은 해결책은 무엇입니까?
  3. 이 블록 캐시 금지를 제거하면 해로울까요?

이것은 오래된 질문이라는 것을 알고 있지만 이것에 대해 아무것도 찾지 못했습니까?
xelber

답변:


1

이 버그는 Magento 1.14.2.0에서 수정되었습니다. ( 알려진 문제의 http://merch.docs.magento.com/ee/user_guide/magento/release-notes-ee-1.14.2.html 참조 )


2
나는 1.14.2.4에서 이것에 대해 방황했다. 시간이 지남에 따라 논리가 바뀌는 것을 볼 수 있습니다. 코드는 if :로 둘러싸여 if ($this->_processor->canProcessRequest($request) && ($request->isStraight() || $this->_processor->getRequestProcessor($request)) ) { Mage::app()->getCacheInstance()->banUse(Mage_Core_Block_Abstract::CACHE_GROUP); } 있지만 블록 캐시를 금지하는 이유에 대한 근거는 찾을 수 없습니다. 더 깨달을 수 있습니까?
PanPipes

2

체크 아웃 또는 장바구니 페이지와 같이 동적 블록에 대해 FPC를 비활성화 할 수 있습니다. 세 번째 질문에 대해, 내 의견으로는 FPC 프로세스가 손상 될 수있는 이것을해서는 안됩니다 (솔직히 말해서 정답을 얻으려면 소스 코드도 확인해야합니다).


첫 번째 질문은 나의 첫 번째 질문입니까? 그렇다면 체크 아웃 또는 장바구니 페이지에서 FPC를 비활성화하려면 블록 캐시를 비활성화해야하는 이유는 무엇입니까? 실제로 블록 캐시는 전체 페이지가 캐시 된 경우에만 비활성화됩니다.
Alex

방금 사용자 쿠키를 제어하는 ​​소스 코드를 확인했습니다. 사용자가 쿠키를 차단 한 경우 FPC는 캐시를 차단합니다. _getCookie 함수는 사용자 쿠키를 제어하는 ​​Enterprise_PageCache_Model_Cookie 인스턴스를 반환합니다.
Oğuz Çelikdemir

쿠키와 어떤 관련이 있습니까? 그리고 어떤 코드 라인에 대해 이야기하고 있습니까? 혼란
Alex

알렉스, 오늘 밤 다시 확인하고 필요한 코드 블록을 보내드립니다.
Oğuz Çelikdemir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.