2011-09-15 16 views
4

我创建了一个模块,可以在我的Windows XAMPP安装。但是,在Linux上进行测试似乎并不正确。更具体地说,我的控制器似乎没有加载。Magento控制器工作Windows,而不是Linux

当访问url www.mysite.com/modulename/standard/我得到一个404错误。我希望得到一条消息,输出控制器中类定义之前的die('here')

控制器文件是/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片段如下所示,这也不起作用。另请注意,我曾尝试访问两个XML版本www.mysite.com/Modulename/standardwww.mysite.com/modulename/standard,每次都有404错误。

<Modulename> 
    <use>standard</use> 
    <args> 
     <module>Namespace_Modulename</module> 
     <frontName>Modulename</frontName> 
    </args> 
</Modulename> 

有没有人知道可能是什么问题?

谢谢。

编辑

按照要求,这里是模块的配置文件。这一切似乎都是正确的 - 模块显示在Admin/Developer页面中,模块配置屏幕(在system.xml中生成)出现在后端。而且,模块的一部分(以及看似控制器)正在前端工作!

<config> 
<modules> 
    <Namespace_Modulename> 
     <active>true</active> 
     <codePool>local</codePool> 
    </Namespace_Modulename> 
</modules> 
</config> 

编辑2

有些版本可能证明是有用的。 PHP 5.3 Magento的1.5.1.0

+0

你可以显示'应用程序/ etc/modules/namespace_modulename.xml'吗? – jamapag

+0

@jamapag - 用XML编辑了问题。谢谢。 – Pete171

+0

清除缓存rm -rf var/cache/*? –

回答

0

我不敢相信!

我的开发箱在我不知情的情况下更新,看起来好像在这个过程中,我的Apache配置已经改变了!我终于意识到,我没有收到Magento平常的404错误页面,只有一个普通的,丑陋的404页面,并检查了我的Apache错误日志,其中说/Modulename/standard文件不存在。更新我的Apache配置添加以下修复的问题:

<Directory "mymagentodirectory"> 
AllowOverride All 
</Directory> 

我不敢相信。感谢所有花时间阅读和回复的人!:)

0

试试这个代码:

<frontend>  
    <routers> 
     <namespace_modulename> 
      <use>standard</use> 
      <args> 
       <module>Namespace_Modulename</module> 
       <frontName>modulename</frontName> 
      </args> 
     </namespace_modulename> 
    </routers> 
    <!-- other blocks here --> 
</frontend> 
+0

不好运,恐怕。试着用这两个URL('www.mysitehere.com/modulename/standard /'和'www.mysitehere.com/modulename/standard /')以及大写和非大写版本的''标签。 – Pete171

0

是您的控制器实际上命名StandardController.php?在“控制器”之前的大小写敏感的文件系统部分应该从大写字母开始,所有其他字母应该小写

+0

这就是它的实际名称...... – Pete171

+0

@ Pete171非常奇怪的问题......你可以上传你的模块代码,所以我可以仔细看看吗? – Zifius

相关问题