cakephp在一个子目录中

时间:2011-02-07 23:55:33

标签: php cakephp cakephp-1.3 subdirectory

我遇到了cakephp的问题,我找不到让cakephp在子目录中工作的方法。我有一个位于www.example.com的网页,我希望在www.example.com/cake上有cakephp应用程序。 www.example.com是一个虚拟主机,cake是它的子目录,其中存储了所有的蛋糕文件和目录。 问题是,当我转到www.example.com/cake时,它会请求CakeController并且没有加载样式表。 当我转到www.example.com/cake/users/register(= UsersController::register())时,它会显示正确的网站,但同样没有CSS。

所以我需要两件事......让www.example.com/cake显示主页并加载样式表。

你不知道如何实现这个目标吗?

提前致谢

3 个答案:

答案 0 :(得分:3)

您的mod_rewrite很可能未在您的托管帐户中启用Apache。请咨询您的主人。下面描述的另一个可能的问题是:

您是否更改了webroot / index.php中的路径?

您需要根据托管服务提供商目录路径调整该文件中的路径以指向Cake核心文件文件夹。

例如,

if (!defined('CAKE_CORE_INCLUDE_PATH')) { 
    define('CAKE_CORE_INCLUDE_PATH', 'home' . DS .'w3dev' . DS . 'public_html' . DS . 'clients' . DS . 'folderName' . DS . 'remote' . DS . 'v1.1' . DS .  'cake'); 
}

if (!defined('APP_DIR')) {
    define('APP_DIR', basename(dirname(dirname(__FILE__))). DS . 'v1.1' . DS . 'app'); 
}

以上所有内容都取决于托管服务器帐户上的目录。作为根路径数据的主机,您可以相应地指出它。

答案 1 :(得分:3)

您是否在书中阅读了this page并在/app/webroot/index.php进行了相应的更改?

修改

  

问题在于我去的时候   www.example.com/cake要求a   CakeController并没有样式表   加载。

这似乎表明您在网站的根目录(www,htdocs,public_html或其他)中有错误的.htaccess,因为它正在尝试将请求处理到CakePHP结构中。

它应该看起来像这样

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

为什么不让自己轻松生活,将CakePHP放在root中,并将位于www.example.com的页面移动到app / webroot中。这样它就会按照你想要的那样行事,即:

www.example.com/staticPage.html - 显示静态页面。

www.example.com/users - 显示用户索引

webroot中的文件就像它们位于站点的根目录中一样。想想css和javascript文件。

答案 2 :(得分:0)

我不熟悉Cake,但它几乎肯定是某种路径问题。验证样式表的路径是否准确。

我知道有些框架将使用返回配置值的base_url()函数(或类似命名的东西),您应该检查您的配置以确保正确设置基本URL。