2012-02-28 106 views
2

我是cakephp的新手,我在设置本地开发服务器时遇到了一些问题。我的蛋糕安装位于http://localhost/dropbox/my_site/。但是,当我尝试访问该网址时,它告诉我Dropbox控制器未设置。我如何告诉CakePHP从my_site开始而不是从/localhost/开始?CAKEPHP - 将默认路径更改为webroot

我试过在路线中加入connect(/localhost/dropbox/*),但它似乎仍然在错误的位置寻找模型。

我试图编辑在app/webroot的index.php文件,但所有的示例显示了如何编写在linux格式,而不是窗口的目录,所以我不知道如何组织“根”

回答

4

CakePHP将在一个子目录中愉快地工作 - 我在我的开发计算机上有几个在http://localhost/ {appname}上运行的Cake站点。

Cake在根index.php文件中定义了它的根目录。如果你看里面,你会看到下面几行:

define('ROOT', dirname(__FILE__)); 
define('WEBROOT_DIR', 'webroot'); 
define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS); 

,因为它是扎根从dirname(__FILE__),它将始终指向该文件的位置。

我怀疑你的路由文件有问题。您是否创建了任何自定义路由规则来考虑位于子目录中?如果你这样做,你的蛋糕安装可能试图访问http://localhost/dropbox/my_site/dropbox/ ...这就是为什么你得到这个错误。

+0

Router :: connect('/',array('controller'=>'cars','action'=>'index')); 这是我在我的路线中编辑的唯一东西。 – Stewie 2012-02-28 16:58:02

+0

@Stewie,当你直接导航到你的网站时,你会得到这个错误?或者只有点击您网站上的链接...? – Farray 2012-02-28 17:03:02

+0

当我去http:// localhost/dropbox/my_site它告诉我dropbox控制器不存在。 cakephp安装位于my_site文件夹中。 - 第二个区分大小写 当我去http:// localhost/Dropbox/My_Site /我得到: 调用成员函数find()在C:\ wamp \ www \ Dropbox \第10行的My_Site \ app \ Controller \ CarsController.php – Stewie 2012-02-28 18:34:28

0

这可能没有按与CakePHP无关,因为它与您的Web服务器有关。

如果dropbox是您的文档根目录,它应该在您的Web服务器配置中进行相应的映射。例如在Apache中使用DocumentRoot

+0

我没有在我的Web服务器中为此开发站点设置的单独站点。也许这就是我做错了。我正在使用wamp,并且只是将我的保管箱文件夹放入了保管箱文件夹内的应用程序文件夹。 – Stewie 2012-02-28 17:03:04