我很难过!
我有一个自定义扩展,在Mac Leopard本地工作得很漂亮,但是在推送到主机(Centos Linux)后,当我尝试调用前端路由器时,我收到Magento 404错误.
例如这个URL:
[domain] /shop/index.PHP/bbyd_sync/index/在现场生成404,但在本地返回“done”.
这是我的config.xml:
我的IndexController.php
class Bbyd_Sync_IndexController extends Mage_Core_Controller_Front_Action
{
public function indexAction() {
echo "done";
}
}
我的app / code / local结构(我在这里使用字母大小写):
Bbyd
Sync
controllers
IndexController.php
etc
config.xml
system.xml
Helper
Data.php
Model
Run.php
Mysql4
Run.php
sql
sync_setup
mysql4-install-0.1.0.php
当然我也有/app/code/etc/modules/Bbyd_Sync.xml.
关于Mac和Mac之间发生的问题,任何人都有一些明智的想法. Magento的Linux平台?也许是文件/目录的大写?
顺便说一下,这是Magento 1.5.
任何帮助表示赞赏…(我的第一个要求所以请温柔!)
最佳答案
步骤0:清除实时服务器上的缓存和会话.
步骤1:使用免费/开源Module List Module检查您的模块是否已安装
步骤2:使用以下方法删除一些调试代码. var_dumps将告诉您Magento的路由器在您的模块中寻找哪些文件/类,但无法找到.
File: app/code/core/Mage/Core/Controller/Varien/Router/Standard.PHP
protected function _validateControllerClassName($realModule,$controller)
{
$controllerFileName = $this->getControllerFileName($realModule,$controller);
if (!$this->validateControllerFileName($controllerFileName)) {
var_dump($controllerFileName);
return false;
}
$controllerClassName = $this->getControllerClassName($realModule,$controller);
if (!$controllerClassName) {
var_dump($controllerFileName);
return false;
}
// include controller file if needed
if (!$this->_includeControllerClass($controllerFileName,$controllerClassName)) {
var_dump($controllerFileName);
return false;
}
return $controllerClassName;
}
第3步:调试which 404 page it is.