2011-02-07 90 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