我已经创建了一个可在我的 Windows XAMPP 安装上运行的模块。但是,在 Linux 上进行测试似乎无法正常工作。更具体地说,我的 Controller 似乎没有加载。
访问 url www.mysite.com/modulename/standard/
时出现 404 错误。我期待收到一条消息,输出 Controller 中类定义之前的 die('here')
。
Controller 文件是/app/code/local/Namespace/Modulename/controllers/StandardController.php
。
类在这个文件中定义如下:
class Namespace_Modulename_StandardController extends Mage_Core_Controller_Front_Action
我的 XML 配置文件的摘录在这里:
<frontend>
<routers>
<modulename>
<use>standard</use>
<args>
<module>Namespace_Modulename</module>
<frontName>modulename</frontName>
</args>
</modulename>
</routers>
<!-- other blocks here -->
</frontend>
我最初的想法是,这是一个我在 Windows 上开发时没有注意到的区分大小写的问题。之前的XML片断如下,同样不行。另请注意,我已尝试访问 www.mysite.com/Modulename/standard
和 www.mysite.com/modulename/standard
两个 XML 版本,出现 404 错误每次。
<Modulename>
<use>standard</use>
<args>
<module>Namespace_Modulename</module>
<frontName>Modulename</frontName>
</args>
</Modulename>
有人知道可能是什么问题吗?
谢谢。
编辑
根据要求,这是模块的配置文件。这一切似乎都是正确的——模块显示在管理/开发人员页面中,模块配置屏幕(在 system.xml 中生成)出现在后端。此外,部分模块(似乎还有 Controller )在前端工作!
<config>
<modules>
<Namespace_Modulename>
<active>true</active>
<codePool>local</codePool>
</Namespace_Modulename>
</modules>
</config>
编辑2
某些版本可能有用。 PHP 5.3 Magento 1.5.1.0
最佳答案
试试这段代码:
<frontend>
<routers>
<namespace_modulename>
<use>standard</use>
<args>
<module>Namespace_Modulename</module>
<frontName>modulename</frontName>
</args>
</namespace_modulename>
</routers>
<!-- other blocks here -->
</frontend>
关于php - Magento Controller 适用于 Windows,不适用于 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429825/