我正在构建一个控制器,当我调用一个Action时,我得到一个404错误(上周一切正常!).我正在使用以下方法调用该操作:
http://www.website.com/route/controllername/actionname
例如:
http://www.website.com/abcdef/test/echo
我调查了这个问题(使用Mage :: log('..'))并发现控制器正在加载.控制器的名字也很好.进一步的调查显示我的控制器内的noRouteAction被调用.
即我的控制器包含:
public function noRouteAction() {
echo "noRoute Action";
}
public function echoAction() {
echo "Echo Action";
}
Run Code Online (Sandbox Code Playgroud)
当我打电话给http://www.website.com/abcdef/test/echo时,我得到了"noRoute Action".
为什么不调用echoAction?
编辑:
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Abcdef_Web>
<version>1.0.0</version>
</Abcdef_Web>
</modules>
<global>
<helpers>
<abcdef>
<class>Abcdef_Web_Helper</class>
</abcdef>
</helpers>
<blocks>
<abcdef>
<class>Abcdef_Web_Block</class>
</abcdef>
</blocks>
</global>
<frontend>
<routers>
<abcdef>
<use>standard</use>
<args>
<module>Abcdef_Web</module>
<frontName>abcdef</frontName>
</args>
</abcdef>
</routers>
<layout>
<updates>
<abcdef>
<file>abcdef.xml</file>
</abcdef>
</updates>
</layout>
</frontend>
</config>
Run Code Online (Sandbox Code Playgroud)
控制器类文件:(TestController.php)
<?php
class Abcdef_Web_TestController extends Mage_Core_Controller_Front_Action {
public function noRouteAction() {
echo "noRoute Action";
}
public function echoAction() {
echo "Echo Action";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
好的发现了问题!!!!
似乎"将商店代码添加到网址"设置为是,因此Magento期待:
http://www.website.com/storecode/abcdef/test/echo
而不是:
http://www.website.com/abcdef/test/echo
对于那些有同样问题的人.这可以通过以下方式禁用:
系统/配置/常规/网络/网址选项/将商店代码添加到网址
注意:
我不记得将此选项设置为是.我看到一些报道说这个设置可能会自动更改(4人报告):
http://www.magentocommerce.com/boards/viewthread/192613/
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |