2012-05-30 34 views
0

我們有一個移動設備的例外,它加載了不同的JS,佈局,CSS和圖像文件。Magento全頁緩存和設計例外

隨着FPC關閉,它完美的作品。但是,當它啓動時,每個人都會獲得常規站點(無例外)。

我認爲這是由於head.phtml被緩存。

從FPC排除head.phtml的方式去這裏?還是在玩別的東西?

如果是先前的,最好的方法是什麼?用cache.xml創建一個自定義模塊,並從Enterprise/PageCache模仿cache.xml?

這是Magento EE 1.11。

回答

1

如果你可以避免它,不要繞過任何塊的緩存。它將改善您在日誌運行中的用戶體驗。但是,有幾種方法可以解決這個問題。

我已經在博客here關於禁用基於每個控制器的緩存。 您可能會暫時使用相同的方法,除非使用不同的「if」條件。

當我檢查:

if ($action instanceof <controller_class_name>) { 

你可以很容易地使用:

if ($user_is_mobile == true) { 

這樣做,這樣只會讓你的移動用戶在同時工作。真的,答案並不是禁用或繞過緩存,而是使用相同的方法來偵聽頁面請求併爲移動和非移動請求分配不同的佈局句柄。每個佈局句柄將相應地緩存。

瞭解如何在佈局更新中使用手柄。從內存中它是這樣的:

Mage::app()->getLayout()->getUpdate()->addHandle("mobile"); 

然後在你的page.xml,添加一個名爲移動一個新的節點,這樣的事情

<mobile> 
    <reference name="root"> 
     <remove name="mainHead" /> 
     <block type="core/template" name="mobileHead" /> 
    </reference> 
</mobile> 

或者類似的規定。這是瘋狂的未經測試,但我希望你能明白。

你可以看看使用響應的CSS取決於屏幕分辨率。

+0

謝謝,Mike。很棒的博客,順便說一句,應該不會出現box?這是1.11版本的一個bug嗎?1.12版本的iPhone主題,並且即使使用FPC也可以加載OK。 – djdy

+0

感謝隊友!說實話,我還沒有使用過1.12,但我不知道它是如何工作的。我肯定會進去看看!用FPC,如果一個塊被緩存了,那麼塊內的所有塊都會被緩存,這對於動態內容來說並不是很理想(即使你描述的是什麼並不是真正的「動態」)。有一種稱爲打孔的技術,你可能聽說過這個技術。 –

1

看來FPC只能在包裝級別使用1.11的設計例外。使用FPC在主題級別設置例外將不會不幸:( 您是否設法找到此解決方案?

+3

是的,我最終聯繫了Magento的支持人員,他們已經準備好了.patch文件。工作得很好。 – djdy