早上好!我正试图创建一个Magento模块,但我在模块的config.xml中定义的路由导致了一个404页面。
我知道这个问题已经出现过无数次了,我整晚都在阅读我能找到的关于这个主题的每一个SO回复。
以下是我所做的:
- 清除了var/cache&var/session文件夹
- 运行compiler.php--clear、compiler.php--disable和compiler.php--compile
- 已清除&刷新管理面板中的缓存和缓存存储,从后端和命令行重新索引
- 创建了一个新的测试包/模块,与我以前使用的完全不同。它显示在系统>>配置>>高级中
- 已验证Magento没有将商店代码附加到URL
- 将我的代码简化到controller.php的indexAction()函数中的一个echo语句
- 尝试导航到mydomain.com/customroute和mydomain.com/index.php/customroute、mydomain.com/customerroute/index/index和mydomaincom/index.php/index及其所有可能的变体
- 多次重复步骤1-8。xD
下面是一些屏幕截图供参考。提前谢谢你——如果有人知道如何克服这一点,那将是一个彻底的救命稻草。谢谢
- https://i.stack.imgur.com/fL8VF.png"config.xml"
- https://i.stack.imgur.com/DHH9U.png"IndexController.php"
编辑:
以下是app/etc/modules/Volverrine_Taurine.xml中的代码:
<?xml version="1.0"?>
<config>
<modules>
<Wolverine_Taurine>
<active>true</active>
<codePool>local</codePool>
</Wolverine_Taurine>
</modules>
</config>
Wolverine/Taurine/etc/config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Wolverine_Taurine>
<version>1.0</version>
</Wolverine_Taurine>
</modules>
<frontend>
<routers>
<wolverine_taurine>
<use>standard</use>
<args>
<module>Wolverine_Taurine</module>
<frontName>taurine</frontName>
</args>
</wolverine_taurine>
</routers>
</frontend>
</config>
Wolverine/Taurine/controllers/IndexController.php:
<?php
class Wolverine_Taurine_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
echo "I look incredible.";
}
}
我已经使用了您的模块,它非常适合我。如果您使用的是linux平台,请对所有文件和文件夹给予适当的权限。我认为这是由于文件/文件夹权限造成的。将Magento基本目录中所有文件的Linux权限更改为拥有用户(您)可读写。将文件权限设置为664,将文件夹权限设置为775。775的文件也可以。为media和var设置777,每个人只需要写入2个文件夹。
我遇到了同样的问题,但解决方案不同。在我的案例中,这是配置"问题"——以前的开发人员在app/etc/local.xml
中设置了<disable_local_modules>true</disable_local_modules>
,在app'design'frontend'default'theme392'template'catalog'product'view.phtml
中设置了硬编码的Excellence_Ajax
前端部分,而不是使用模块的模板(或者也禁用了本地模块,因此无法正常工作)。最后,它使用ajax(硬编码javascript)进行请求,但由于禁用了模块而没有被路由。
我按照这里的描述调试它。我读了日志,发现admin
和standard
路由器中都没有找到ajax
模块,所以我深入挖掘,看看模块的配置是否已加载。我在loadModulesConfiguration()
的app'code'core'Mage'Core'Model'Config.php
中又添加了一个Mage::log()
,这是我在项目中搜索"config.xml"后发现的,并检查了$disableLocalModules
的值。瞧。。如此简单却又如此艰难;)