2011-08-24 114 views
0

我想用Zend框架创建应用程序,所以 我已经用zf工具创建了基本的应用程序结构。Zend索引控制器问题

现在,当我尝试使用http开头的应用程序:“欢迎到Zend框架” //localhost/zendApp/public/index.php 默认页面加载。

但是当我键入的http://本地主机/ zendApp /公/的http://本地主机/ zendApp /公共/指数指数控制器,则不会调用,但 而我得到的错误信息:

指定

*无效控制器(zendApp)

array (
    'controller' => 'zendApp', 
    'action' => 'public', 
    'module' => 'default', 
) 
  • 正如你看到的,它试图开始与应用程序的名称控制器。 另外,如果我在创建索引控制器附加动作和与HTTP调用它://本地主机/ zendApp /公共/索引/ newaction 我得到同样的错误:

    阵列( “控制器” =>“zendApp ”, '行动'=> '公', '指数'=> 'newaction', '模块'=> '默认', )

你能帮助我理解为什么指数控制器没有被调用? 谢谢。

回答

0

您的控制器的URL将不包含公用文件夹。例如,UserController将是 http://localhost/zendApp/user/而不是http://localhost/zendApp/public/user,并且您的索引控制器应该在http://localhost/zendApp/http://localhost/zendApp/index上工作。

您的网址rewiter(如mod_rewrite的)应设置重写所有的网址/public/index.php除静态文件,例如图片,CSS JS等等看here

你有这种设置: “如果您正在部署到”用户“站点(例如http://localhost/~rob),那么您的.htaccess文件中需要一个RewriteBase行,类似于:RewriteBase /〜rob/zf-tutorial/public /”here

+0

谢谢为了你的回答,我明白你的意思。但我认为zend的默认设置是准确地通过公共文件夹访问控制器 - 开发人员猜测,在Web服务器上部署时,只会将index.php放在公用文件夹中,而其他应用程序只放在公用文件夹之外。但是,当我在本地开发时,这并不令人信服,所以我会用你说的。 – MBozic

+0

我在第一时间为我找到了解决方案问题,当时我正在阅读文章http://www.bogartcomputing.com/web-programming-answers/213/a-heavily-corrected-windows-xp-xampp-zend- framework-quickstart-tutorial-revision /。看来我错过了这个:“行C:\ xampp \ php \ php.ini,取消注释 扩展名= php_pdo.dll 扩展名= php_pdo_sqlite.dll” – MBozic

+0

很确定Zend的默认结构是让你的控制器在应用程序文件夹,公共场所,公共场所仅用于资产和设置环境并调用引导程序的index.php。 http://framework.zend.com/manual/1.11/en/project-structure.project.html – wgcrouch