[英]Cannot Override Magento Block (Possibly Cache Related)
由於某些奇怪的原因,我無法在生產服務器上覆蓋Mage_Catalog_Block_Product_List
。
我有Magento在我開發的本地運行,然后我同步到我的生產服務器,所以我很確定文件系統是相同的(緩存除外)。
這是我到目前為止已經完成-請注意,這是工作完全在本地,只是不是我由於某種原因,生產服務器上:
創建了app/code/local/Mage/Catalog/Block/Product/List.php
以覆蓋Core版本。
添加了必要的代碼,在本地測試,可以正常工作。 更新的代碼僅更新_getProductCollection()
函數,以便在設置了$_GET['newest']
情況下,Magento按created_at日期對產品進行降序排序。 這在本地工作正常
將我的更新同步到生產服務器。 沒有用,所以我認為它與緩存有關。
關閉緩存,刷新索引。 依然沒有。
刪除的var/cache
文件,仍然沒有。
比較了后端配置,看是否有任何問題。 一切看起來都很好。
在生產版本的新塊(List.php)中添加了無效代碼,這樣會導致錯誤。 沒有錯誤(?!)。 好像我上傳的新文件被忽略了。
任何想法都將不勝感激,因為我對想法不知所措。
我正在使用Magento v 1.7.0.2
您的生產服務器是否使用Magento編譯模式? Magento編譯模式並不是真正的編譯,它只是將所有類文件從代碼庫中復制出來,然后放在一個文件夾中。 這極大地提高了PHP(特別是較舊的版本)的速度。 如果您已將新文件上傳到本地代碼池中以供覆蓋,並且您使用的是編譯模式,則可能需要重新編譯類( System -> Tools -> Compiler
或shell/
的命令行腳本) shell/
文件夾)。
另外,您的生產系統是否使用APC? 如果是這樣,則PHP已將類的舊版本緩存到APC中,並且在您清除APC緩存之前不會查看您的新版本。
最后-您是要從Mac / Windows計算機上傳到UNIX環境嗎? 如果是這樣,請嘗試在文件上查找“非常困難”,以區分大小寫錯誤。 我通常會盡量從根文件夾嘗試顯式ls
,以確保文件路徑的命名方式與我認為的相同。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.