【问题标题】:Defining default module in Zend framework doesn't work在 Zend 框架中定义默认模块不起作用
【发布时间】:2013-09-10 11:58:58
【问题描述】:

我读过一本名为 zend 框架:初学者指南的书。有人提到创建模块并对事物进行分类是最佳实践。

我已将模块目录添加到应用程序目录中,并将视图、控制器和模型目录移至其中。结构如下:

应用程序

  • 配置
  • 模块
  • Bootstrap.php

当我打开浏览器并浏览以下网址时:

localhost/square/default/index/index

localhost/square/public/default/index/index

我收到not found 错误消息。我已将配置文件 (application.ini) 更改如下:

resources.frontcontroller.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontcontroller.params.displayExceptions = 0
resources.frontcontroller.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""

我已阅读以下问题,但没有帮助:

Change Zend Framework Default Module

Zend Framework not include the default module in url

【问题讨论】:

    标签: php zend-framework module


    【解决方案1】:

    改用这个吧:

    resources.frontcontroller.controllerDirectory = APPLICATION_PATH "/controllers"
    

    编辑:

    我注意到您使用 localhost/square/ 来访问您的页面。您必须设置一个虚拟主机来解决您的问题,因为路由器需要它才能正常工作。

    见:http://framework.zend.com/manual/1.12/en/learning.quickstart.create-project.html#learning.quickstart.create-project.vhost

    【讨论】:

    • 我的应用路径和你说的不一样。我已将它们全部移到模块目录中。
    • 在App目录下我没有controllers文件夹。
    • 我了解您的应用路径。我刚才说你必须删除“/modules/default”,因为它是自动添加的。见framework.zend.com/manual/1.12/en/…
    • 我仍然收到404 not found。问题是什么?你需要所有的目录结构吗?
    【解决方案2】:

    这应该可以。

    resources.modules[] = ""    
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    resources.frontController.moduleControllerDirectoryName = "controllers"
    resources.frontController.defaultModule = "default"
    resources.frontController.defaultControllerName = "index"
    resources.frontController.defaultAction = "index"
    resources.frontController.env = APPLICATION_ENV
    

    【讨论】:

    • 我仍然通过http://localhost/square/public/index.php 访问我的网站,但是您通过http://localhost/square/default/index/index 访问的方法不起作用!可能是什么问题?你需要所有的目录结构吗?
    • 您没有设置项目的虚拟主机。默认情况下,index.php 位于公用文件夹中。在这种情况下,请转到 localhost/square/public/default/index/index 并查看结果。如果您想从 url 中删除 public,请尝试设置一个虚拟主机,更多此处为 framework.zend.com/manual/1.12/en/… 或将 index.php 放在项目的根目录中,然后编辑您的配置路径,但由于安全问题,不建议使用此解决方案。我英语不好,抱歉。
    • 虽然我添加了public部分,但是同样的错误(404 not found)发生了!
    • 你好。 mediafire.com/?jq8rlxuglb8tbm8这是我的示例配置(没有虚拟主机设置),希望有所帮助!
    猜你喜欢
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多