【问题标题】:Magento does not load module config.xmlMagento 不加载模块 config.xml
【发布时间】:2012-02-18 00:26:56
【问题描述】:

Magento 停止加载模块 config.xml

缓存被禁用并刷新。

模块显示在 Admin->Configuration->Advanced 中,并且模块输出已启用。 是否启用了开发者模式。

它工作正常,没有人接触服务器。

有什么建议吗?

【问题讨论】:

  • 你如何确定它没有被加载?
  • 检查 /var/cache/ 中是否有可用的文件。有时,magento 会报告缓存已刷新,但实际上并未刷新。
  • "模块显示在 Admin->Configuration->Advanced" 仅仅意味着你的声明文件(应该在app/etc/modules下)被解析并且它在xpath下包含一个子节点@987654323 @, 仅此而已

标签: magento


【解决方案1】:

文件系统路径与模块注册文件中的规范不匹配。
对于这样的注册文件:

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

Magento 将首先获取 &lt;codePool&gt; 节点值(注意节点名称中的 大写 P)并将其附加到 app/code/,这给了我们应用程序/代码/本地/

下一个 Magento 采用 &lt;modules&gt; 内的节点名称,在本例中为 Example_TestModule
所有下划线都从该字符串转换为斜线,然后附加到代码池中。这为我们提供了模块的文件系统路径,在示例中为 app/code/local/Example/TestModule/

现在附加硬编码路径 etc/config.xml

所以config.xml文件的最终路径是

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

目录名称的大小写必须完全匹配指定的路径。
如果不是,它将仅适用于不区分大小写的文件系统(如 windows 或默认的 OSX fs),但不适用于 Unix。

还有一点:就像自动加载器一样,命名空间和模块目录的第一个字符将被大写。所以&lt;example_testModule&gt; 最终仍会被解释为 Example/TestModule/

【讨论】:

  • "注意大写字母 P"。哦!谢谢。 m)
猜你喜欢
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多