在这里处理一个奇怪的问题。
我们已将Magento安装从1.9.0.1更新为1.9.3.6。不得不重新编写自定义模块的代码。一切都在我们的本地开发机器上运行得很好,这些机器是生产服务器的克隆:
Nginx,PHP 5.6.30,MySQL
当我们将修订版推向生产时,一切正常,管理面板显示Magento 1.9.3.6但是这个自定义模块(修改管理客户详细信息视图)会在提交表单后抛出404错误。
所有这一切对我们当地的开发都很好。
我们删除了缓存,重新编制了所有数据的索引,并检查了代码是否已正确传输。一切都与本地开发者匹配,但自定义模块在prod服务器上抛出404错误。
我的问题:
(1)知道这里发生了什么吗?
(2)由于404 Magento错误页面没有说明任何有用的调试信息,我们如何在prod服务器上调试路由?
感谢您的帮助!
控制器类位于\ app \ code \ local \ Test \ CustomCustomerFields \ controllers \ Adminhtml \ CustomCustomerFields \ IndexController.php:
class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController extends Mage_Adminhtml_Controller_Action {}
module config.xml:
...
<admin>
<routers>
<adminhtml>
<args>
<modules>
<customcustomerfields before="Mage_Adminhtml">Test_CustomCustomerFields_Adminhtml</customcustomerfields>
</modules>
</args>
</adminhtml>
</routers>
</admin>
...
答案 0 :(得分:1)
原来是一个不影响Ubuntu(本地开发,Vagrant)的camelcase文件夹名称问题,因为自定义模块在那里工作得很好,但在CentOS(prod服务器)上,camelcase错误触发了一个不可读的文件路径,这又导致了404 ......
我通过\ app \ code \ core \ Mage \ Core \ Controller \ Varien \ Router \ Standard.php类调试了路由。
答案 1 :(得分:0)
class Test_CustomCustomerFields_Adminhtml_CustomCustomerFields_IndexController扩展Mage_Adminhtml_CustomcustomerfieldsController