2011-02-07 38 views
0

我有一个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。cakephp子目录内

所以我需要两件东西...得到www.example.com/cake来显示主页并获取样式表加载。

难道你不知道如何做到这一点?

在此先感谢

回答

3

您是否在该书中阅读this page并在/app/webroot/index.php中做出相应修改?

编辑:

的问题是,当我去 www.example.com/cake它请求 CakeController,没有样式 加载。

这似乎表明,你在你的站点的根错的.htaccess(WWW,htdocs目录,的public_html或其他),因为它正试图处理该请求进入CakePHP的结构。

应该这个样子的

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

你为什么不使生活方便自己,并把CakePHP的根和移动驻留在www.example.com到应用程序/ webroot的页面(S) 。这样它就会像你想要的那样完成,例如:

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

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

文件中的Webroot供应完全一样,如果他们在该网站的根。想想css和javascript文件。

0

我不熟悉的蛋糕,但它几乎肯定是某种路径问题。验证样式表的路径是否准确。我知道一些框架将使用返回配置值的base_url()函数(或类似名称),您应该检查您的配置以确保基本URL设置正确。

3

很可能你的mod_rewrite没有在你的主机帐户上启用Apache。检查您的主机。另一个可能的问题如下所述:

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

您需要根据您的托管提供商目录路径来调整该文件中的路径以指向Cake core files文件夹。

例如,

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'); 
} 

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

+0

好吧,我的`CAKE_CORE_INCLUDE_PATH`是`/ var/www/example/cake`,没问题,`APP_DIR`是`app`,这也很好,我猜和`ROOT`是相同的asi核心indluce路径:`/无功/网络/示例/ cake`。 – Elwhis 2011-02-08 15:29:40

+0

顺便说一句,mod_rewrite工作正常 – Elwhis 2011-02-08 15:36:24