2011-08-19 3 views
1

매우 이상한 캐시 문제가 있습니다. 나는 2 개 언어로 한 매장을 운영하고 있습니다. 제가 독일어에서 영어로 언어를 바꿀 때, 그것은 처음으로 작동합니다. 그래서 내가 A (German)면 A (English)로 바뀝니다. 하지만 ... 페이지 또는 카테고리를 변경하면 ... 예를 들어 A에서 B로 변경 한 다음 언어를 다시 전환하면 B가 아니라 A로 다시 리디렉션됩니다.Magento 캐시 문제

매우 긴장감이 있습니다. 캐시 문제. 모든 캐시 옵션을 비활성화하고 나면 완벽하게 작동하지만 캐시 가능성이없는 상점을 운영 할 수 없습니다.

여기 내 가게는 http://www.livewire-clothing.de/packagedetails/ 페이지 코드를 확인하십시오. 언어와 페이지를 전환하고 코드를 다시 확인하십시오.

이 부분은 절대 변경 :

<select id="select-language" title="Ihre Sprache" onchange="window.location.href=this.value"> 
    <option value="http://www.livewire-clothing.de/merchandise/k.html?band=78&amp;manufacturer=55&amp;size=39&amp;___store=de&amp;___from_store=de" selected="selected">Deutsch</option> 
    <option value="http://www.livewire-clothing.de/merchandise/k.html?___store=en&amp;band=78&amp;manufacturer=55&amp;size=39&amp;___from_store=de">Englisch</option> 
</select> 

그것은 캐시해야합니다. 누군가 내게 해결책을 찾았거나 나를 도울 수 있습니까? 고맙습니다.

답변

3

문제는 대부분 언어 전환기를 바닥 글 블록에 넣는 것입니다. Magento의 바닥 글 블록에는 블럭 캐싱이 활성화되어 있습니다. 당신이 Mage_Page_Block_Html_Footer를 보는 경우에, 당신은 정의 캐시 키 (마 젠토 1.5)를 참조합니다 :

public function getCacheKeyInfo() 
{ 
    return array(
     'PAGE_FOOTER', 
     Mage::app()->getStore()->getId(), 
     (int)Mage::app()->getStore()->isCurrentlySecure(), 
     Mage::getDesign()->getPackageName(), 
     Mage::getDesign()->getTheme('template') 
    ); 
} 

이이 블록의 출력은 현재 상점에 따라 별도의 버전에서 캐시됩니다 의미 등을 설계

그러나 언어 전환기는 각 언어의 현재 페이지에 직접 연결됩니다. 각 페이지마다 링크가 다른 경우 각 페이지마다 푸터 출력이 달라집니다. 블록을 무시하고 캐시 정의를 제거하거나 코어/템플릿 블록을 대신 사용하여 바닥 글 블록에 대한 블록 캐싱을 비활성화하는 것을 권장합니다.

+0

답변 해 주셔서 감사합니다. 이걸 좀 도와 주실 래요? 아니면 다른 사람? Magento 프로그래밍에는별로 좋지 않습니다. :) 아니면 시작해야만하는 힌트를주세요. – Marek123

+2

쉬운 방법은 app/code/core/Mage/Page/Block/Html/Footer.php를 app/code/local/Mage/Page/Block/Html/Footer.php로 복사하고 _construct 함수를 주석 처리하는 것입니다. –

+0

고마워요! :) 그것을 시도합니다! – Marek123