2012-03-20 97 views
1

我正在做我的第一個zend應用程序,遵循官方用戶指南,我建立了一個標準的zend應用程序(使用zend studio 9和ZF 1.11),我想添加圖像和CSS樣式表我的.phtml頁面。當我把css文件放在「myApplicationName/public/css」中時,一切正常,但是當我嘗試將它們放在另一個目錄中時,例如「myApplicationName/application/layouts/css」,他們沒有考慮到, 什麼樣我應該使用哪些路徑將它們鏈接到phtml頁面?Zend Framework,路徑問題

我試過相對路徑,像:

<link rel="stylesheet" type="text/css" media="screen" href="../../css/layout_look_like.css" /> 

也:

<link rel="stylesheet" type="text/css" media="screen" href="/application/layouts/css/layout_look_like.css" /> 

,但它似乎沒有工作,

我也試過路徑用$ this-> baseUrl(),但<?php echo $this->baseUrl();?>什麼都不返回。

感謝您的幫助。

回答

0

您的CSS文件應位於public目錄中。應該不需要將它們放在您的application目錄中。如果你真的需要這樣做,你可以建立一個到public目錄的符號鏈接。

要包括CSS文件(存儲在public目錄)到您的視圖/佈局,使用方法:

<?php echo $this->headLink()->appendStylesheet($this->baseUrl('/styles/basic.css')); ?> 
+0

您應該使用'$ this-> baseUrl('/ styles/basic.css')'而不僅僅是路徑。否則,當你的應用程序從一個子目錄運行並且你的baseUrl運行時,你可能會遇到問題,因此不是/ – dbrumann 2012-03-20 12:18:01

+0

@mahok感謝您指出,您是正確的。我編輯了答案。 – Config 2012-03-20 12:19:52

+0

好的謝謝你的迴應,我打算把佈局和它的CSS放入同一個目錄。 – Believer 2012-03-20 12:25:25

2

CSS,圖片和JS和任何其他可公開訪問的靜態資產必須住在public文件夾下,因爲這是你的Web服務器DOCUMENT_ROOT(即http://yourdomain/)。除此之外,你可以使用任何你喜歡的結構。

+1

但是,如果我使用模塊結構,我必須在哪裏存儲我的css和js文件?每個模塊代表一個單獨的頁面。每個頁面都有自己的樣式和js腳本。我是否必須將這些文件放入/ public目錄中?或者我應該這樣做'Module/views/scripts/css'或者這個'Module/views/scripts/controllerName/js'?那麼究竟css和js必須存儲在'/ public'中?屬於layout.phtml的文件?但將佈局的css和js存儲在'/ layout/script/css'和'/ layoutscript/js'中不是更好嗎? – Green 2012-10-16 01:25:23

+1

'/ public'是唯一可以通過URL訪問的東西,所以你可以直接將css/js服務器從你的模塊結構中取出。如果你真的想把它們存儲在這裏,那麼我想你可以使用符號鏈接'Symfony 1.x'在其插件基礎結構中做了類似的事情。 – prodigitalson 2012-10-16 12:38:10

0

你必須寫像下面爲您layout_look_like.css文件中提及的代碼

echo $this->headLink()->appendStylesheet($this->baseUrl('/css/layout_look_like.css'));