【问题标题】:How do I get CakePHP configured so it shows up correctly in my browser?如何配置 CakePHP 使其正确显示在我的浏览器中?
【发布时间】:2013-01-20 04:15:03
【问题描述】:

我是 cakephp 新手,无法通过浏览器查看 view 文件夹下的文件。

我使用 cakephp 控制台来烘焙模型、控制器和视图。 (例如:控制器的 Invoices_controller.php、模型的 invoice.php 和视图文件夹下的发票文件夹)。根据我阅读的教程,我可以通过输入http://localhost/myProject/invoices 访问发票视图 (invoices 文件夹中没有 index.php。但教程显示它仍然可以显示页面。不知道他们是如何做到的)

发票的路径是 myProject/views/invoices,发票文件夹中有 add.ctp、index.ctp、edit.ctp 文件。

我输入http://localhost/myProject/invoices时浏览器显示找不到文件

【问题讨论】:

  • 请澄清“there is no index.php inside the invoices folder”这句话。这是否意味着您在/app/webroot/ 中有一个名为“发票”的文件夹?你得到什么样的错误?它是由 Cake(“缺少控制器发票......”)还是由您的网络服务器(非常普通的白色页面)生成的?
  • 你安装了 mod_rewrite 吗?
  • 我没有安装 mod_rewrite...是这个问题吗???
  • @deceze 我有一个名为 invoices 的文件夹,路径是 localhost/myProject/views/invoices ..但我的发票文件夹中只有 index.ctp、edit.ctp、add、ctp ..本教程可以在他们键入 localhost/myProject/invoices 时显示一个页面...我有相同的文件夹结构,但是当我做同样的事情时。浏览器显示页面未找到...
  • 重新。 mod_rewrite:是的,这就是问题所在!

标签: php cakephp


【解决方案1】:

您对安装 cakephp 时网络服务器如何处理请求缺乏了解。假设我们使用 apache。 在 cake 的文件夹结构中,您可以在根目录、app 和 webroot 目录中看到 .htaccess 文件,其中包含 url 重写规则。最后,对 cakephp 站点的正常请求将转换为 http://site.url.root/app/webroot/index.php?url=original.url

简而言之,以您的观点理解它: 该 index.php 调用所需的 php 文件,并且至少在内存中构建了一个 cakephp 应用程序对象,其中包含所需的模型和方法。然后 app 对象让我们说 start 并调用它的方法(模型、控制器和视图方法),最后它会将结果返回给 apache 为您提供的服务。

因此原始 url 路径是一个“不存在”的虚拟 url。

【讨论】:

    【解决方案2】:

    如果你输入http://localhost/myProject/,你会得到一个蛋糕介绍页面吗?如果是这样,它是否突出了任何问题?

    听起来好像您没有正确设置 Apache。我不知道您使用的是什么操作系统,但可能值得检查这个为 Ubuntu 编写的链接,以确保一切正常:http://leoponton.blogspot.com/2010/05/getting-cakephp-up-and-running-on.html

    【讨论】:

    • 我可以在输入localhost/myProject 时看到该页面。该页面对我来说看起来不错(连接到数据库..等)。我使用 Ubuntu 作为我的操作系统... +1
    • 页面样式是否正确? (例如:你能访问样式表 URL - localhost/myProject/css/cake.generic.css 如果我没记错的话,你可以检查生成的源以获得实际 URL)
    【解决方案3】:

    我解决了同样的问题。 如果您使用的是 Windows 7 操作系统、wamp 服务器、cakephp 2.2.3。那么

    转到 apache -> http.conf -> 打开 -> 搜索 mod_rewrite -> 取消注释行 LoadModule rewrite_module modules/mod_rewrite.so

    现在重新启动您的服务器,现在它应该可以正常工作了。

    【讨论】:

      【解决方案4】:

      杰瑞,我认为问题是这样的。您已将 CakePHP 文件夹放在 localhost 的根目录中。我建议您创建一个指向 myProject 的虚拟主机,以便 url 变为:

      http://myProject/accounting

      这可能会解决您的问题。确保重写模块已打开。另外,当你将虚拟主机指向myProject时,它应该是cakephp的APP文件夹。如果你想在同一个核心上运行多个项目,你可以像这样设置它们:

      /var/www/cake
      /var/www/html/myProject
      /var/www/html/myProject2
      

      /var/www/cake 目录是放置蛋糕核心的位置。在此目录下,您将拥有 cake、app、plugins、vendors 等。myProject(2) 目录将是 app 目录的内容。

      现在,要让它工作,您需要转到 /var/www/html/myProject/webroot/index.php 并编辑它以指向 /var/www/cake 中的 cake 目录。当重写指向 webroot 中的 index.php 时,这将加载核心。你应该很高兴!

      【讨论】:

        猜你喜欢
        • 2017-08-19
        • 2014-04-27
        • 2018-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-15
        相关资源
        最近更新 更多