2012-02-18 139 views
2

Magento停止加載模塊config.xmlMagento不加載模塊config.xml

緩存被禁用和刷新。

該模塊顯示在管理 - >配置 - >高級和模塊輸出啓用。 是否啓用了開發者模式。

這是有效的,沒有人觸及服務器。

有什麼建議嗎?

+1

你是如何確定它未被加載的? – 2012-02-18 08:17:49

+0

檢查/ var/cache /中是否有可用的文件。有時候,magento報告緩存在不存在時被刷新。 – 2012-02-18 08:53:00

+3

「模塊顯示在管理 - >配置 - >高級」僅僅意味着你的聲明文件(應該在'app/etc/modules'下)被解析並且它包含一個在xpath下的子節點'config/modules' ,*和沒有其他*。 – benmarks 2012-02-18 13:41:18

回答

16

文件系統路徑與模塊註冊文件中的規格不匹配。
對於註冊文件是這樣的:

<config> 
    <modules> 
     <Example_TestModule> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Example_TestModule> 
    </modules> 
</config> 

的Magento將首先採取<codePool>節點值(看在節點名稱上情況P)和追加一條到應用程序/代碼/,這給我們app/code/local/

Next Magento取<modules>內部的節點名稱,在本例中爲Example_TestModule
所有下劃線都從該字符串轉換爲斜槓,然後將其附加到代碼池。這爲我們提供了模塊的文件系統路徑,例如它是app/code/local/Example/TestModule/

現在硬編碼路徑etc/config.xml被追加。

所以到的config.xml文件最終路徑具有完全匹配指定路徑的目錄名的

app/code/local/Example/TestModule/etc/config.xml 

外殼
如果不行,它只能在不區分大小寫的文件系統(如windows或默認的OSX fs)上工作,但不能在Unix上工作。

還有一件事:就像自動加載器一樣,命名空間和模塊目錄的第一個字符將被大寫。因此<example_testModule>仍然會被解釋爲示例/ TestModule/

+3

「請注意大寫P」。 D'哦!謝謝。 m) – scy 2013-01-08 13:47:42

+1

代碼* P * ool保存了我的一天,thx – sebastianwagner 2015-08-07 13:15:08