2012-02-18 97 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