2010-09-01 39 views
1

我是一个cakephp新手,我无法通过浏览器查看视图文件夹下的文件。如何配置CakePHP,使其在浏览器中正确显示?

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

我的发票的路径是myProject/views/invoices,并且在invoices文件夹内有add.ctp,index.ctp,edit.ctp文件。

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

+0

请澄清“发票文件夹内没有index.php”这句话。这是否意味着在'/ app/webroot /'中有一个名为“invoices”的文件夹?你会得到什么样的错误?它是由Cake(“missing Controller invoices ...”)还是由您的web服务器(非常普通的白页)生成的? – deceze 2010-09-01 03:07:57

+1

你有没有安装mod_rewrite? – NullUserException 2010-09-01 05:29:43

+0

我没有安装mod_rewrite ...是这个问题? – FlyingCat 2010-09-01 13:32:03

回答

2

你有一些关于如何CakePHP安装时处理请求的Web服务器缺乏自己的知识。假设我们使用apache。 在cake的文件夹结构中,你可以在root,app和webroot目录中看到.htaccess文件,其中有url重写规则。在结束一个CakePHP的网站正常的请求将被转换为http://site.url.root/app/webroot/index.php?url=original.url

在总而言之,了解它在你的观点: 这index.php文件调用所需的PHP文件和至少一个CakePHP的应用对象是建立在内存中使用所需的模型和方法。然后,应用程序对象让我们说开始并调用它的方法(模型,控制器和视图方法),最后它将结果返回给Apache,它为您提供了什么。

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

1

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

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

+0

当我输入http:// localhost/myProject /时,我可以看到页面。该页面看起来不错(连接到数据库..等)。我使用Ubuntu作为我的操作系统... +1 – FlyingCat 2010-09-01 13:36:33

+0

页面样式是否正确? (例如:如果我没有弄错,你可以访问样式表的URL - http://localhost/myProject/css/cake.generic.css,你可以检查生成的源代码是否为实际的URL) – NullUserException 2010-09-01 14:03:15

0

杰里,我认为问题是这样的。你已经把CakePHP文件夹放在localhost的根目录下。我建议你创建一个指向该myProject的虚拟主机,因此网址变为:

http://myProject/accounting

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

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

在/ var/WWW /饼目录是你把蛋糕核心。在这个目录下,你将有蛋糕,应用程序,插件,供应商等myProject(2)目录将是应用程序目录的内容。

现在,要获得此功能,您需要转到/var/www/html/myProject/webroot/index.php并将其编辑为指向/ var/www/cake中的cake目录。这将在webroot中重写指向index.php时加载核心。你应该很好走!

1

我修正了同样的问题。 如果你使用的是Windows 7操作系统,wamp server,cakephp 2.2.3。然后

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

现在重新启动服务器,现在它应该工作的罚款。

相关问题