2011-11-02 71 views
1

我在我的MacBook Pro上使用MAMP作爲本地服務器。 PHP和MySql運行良好。然而,我有一個CakePHP奇怪的問題 - CSS只適用於我的網站的主頁,只有以下兩條路徑: 'localhost'和'localhost/index.php'CSS不能與CakePHP一起使用,使用MAMP

使用'localhost/index.php/'然而,與網站上的所有其他頁面一樣,它只返回裸露的未標註標記。怎樣才能最終打破CSS?

一些搜索提示,這可能是apache中的mod重寫問題,但我深信說實話 - 我不知道如何測試我是否會對mod進行重寫。

由於CSS只適用於2個特定路徑,它可能是我的路線問題嗎?我只有2個定義 - '/'和'/index.php/' - 它們都是相同的。

任何幫助,將不勝感激, 詹姆斯

+0

請顯示您用於將CSS添加到佈局的代碼。有可能你正在使用相對文件路徑而不是絕對路徑。 – JJJ

回答

0

的問題是最有可能作爲tbwcf說你」重新嘗試使用相對文件路徑加載CSS文件,但您應始終使用CakePHP's helpers將資源文件添加到佈局:

<?php echo $this->Html->css('style'); ?> 

上面會輸出

<link rel="stylesheet" type="text/css" href="/css/style.css" /> 

的好處是,如果你安裝了應用到其他目錄的路徑自動更改:

<link rel="stylesheet" type="text/css" href="/other/directory/css/style.css" /> 

做到像../css使用相對文件路徑。除最簡單的情況外,它將再次打破布局。

1

它看起來像您MAMP的配置(或內MAMP Apache在mod_rewrite的禁止。它看起來像你必須遵循http://documentation.mamp.info/en/mamp-pro/advanced-functions/edit-configuration-files說明,編輯模板Apache的httpd.conf,搜索mod_rewrite的,並配置模板去掉這一行。

+0

這種情況不太可能發生 - CakePHP不使用經過驗證的URL來提供CSS文件。 – JJJ

+1

CakePHP使用.htaccess將代碼路由到應用程序/ webroot目錄,其中代碼的分派過程開始,並且 - 通常存儲所有資產。所以,當使用像domain.com/img/whatever這樣的路徑訪問資產時。jpg - 要麼通過mod_rewrite處理,要麼需要指定完整路徑(/app/webroot/img/whatever.jpg)。 這也涉及到CSS和JS。 – 2011-11-02 09:02:31

0

的斜槓標記結束時,如果你的CSS作爲

<link rel="stylesheet" href="css/stylesheet.css" /> 
0123引用最有可能突破的文件路徑樣式表。例如

然後將斜線添加到網頁網址意味着您需要跳回一個步驟才能找到相同的樣式表,因爲它不再位於與您所在頁面相同的文件夾中。

所以,你可以添加

../ before the reference like <link rel="stylesheet" href="../css/stylesheet.css" /> 

或者可能是在這種情況下,更容易的解決辦法是引用你的樣式完全一樣:

<link rel="stylesheet" href="http://localhost:8888/project/css/stylesheet.css" /> 
+0

感謝大家的回覆。原來是由於相對路徑。我將CSS路徑改爲絕對,這沒有什麼區別。然後,我改變了jquery路徑爲絕對的,因爲我使用的是較少的css框架和語義網格系統。這解決了我的問題。 – tvrjames