我想包括一個特定的css文件,該文件應該應用於主頁,以及整個我的網站中的6-7個其他頁面。我知道我可以通過PHP來做到這一點,獲得的URL,找出什麼頁面,鏈接的CSS等,但我想知道是否有一個光滑的方式(或更好的方式)使用CakePHP包括正確的css文件。CakePHP - 包含基於特定頁面的css?
我意識到我可以鏈接來自特定視圖的CSS文件,但是 - 然後他們不會在<head>
。有沒有一種方法可以從視圖中鏈接出來並讓它出現在腦海中?
我希望我的問題有意義,並非常感謝任何幫助。
我想包括一個特定的css文件,該文件應該應用於主頁,以及整個我的網站中的6-7個其他頁面。我知道我可以通過PHP來做到這一點,獲得的URL,找出什麼頁面,鏈接的CSS等,但我想知道是否有一個光滑的方式(或更好的方式)使用CakePHP包括正確的css文件。CakePHP - 包含基於特定頁面的css?
我意識到我可以鏈接來自特定視圖的CSS文件,但是 - 然後他們不會在<head>
。有沒有一種方法可以從視圖中鏈接出來並讓它出現在腦海中?
我希望我的問題有意義,並非常感謝任何幫助。
我知道我可以從 鏈接CSS文件的具體意見,但 - 那麼他們 不會在
<head>
。有沒有一種 的方式從視圖鏈接,並讓它 顯示在頭部?
是的,他們會在頭上。見HTML Helper documentation:
如果key「內聯」被設置爲false $選項參數,鏈接標籤 添加到$ scripts_for_layout中 變量,你可以在裏面 打印文檔的頭標記。
所以,這個片段在你看來...
$this->Html->css('my-css', null, array('inline' => false));
...將適當<link>
元素添加到您的<head>
。
非常感謝帶領我在正確的方向!爲了澄清你對於像我這樣困惑的其他人的回答,你可以從你的視圖中「包括」你的css文件,但是通過Cake的Html-> css代碼,並將它設置爲inline => false,就像上面提到的那樣回答,它會像你想要的那樣在頭標籤中添加CSS。 它沒有爲我工作,直到我作爲第二個選項添加null:<?php echo $ this-> Html-> css('layout1',null,array('inline'=> false)); ?> 不知道我是否做錯了什麼,或者是否必須包含文檔中提到的第二個參數。 – Dave 2011-03-29 14:14:50
@Dave:你說的沒錯。選項數組是第三個參數,而不是第二個參數。我更新了我的答案。 – 2011-03-29 14:34:56
完美,再次感謝您的幫助! – Dave 2011-03-29 17:27:19
檢查這個小教程出來:
http://nuts-and-bolts-of-cakephp.com/2008/05/05/css-files-and-scripts_for_layout/
基本上你可以使用這個標準視圖屬性$ scripts_for_layout中注入基於視圖CSS文件。希望這是你正在尋找的。我想到了其他一些瘋狂的選項,涉及擴展解析,但它可能比手動鏈接樣式表更麻煩。我認爲這個鏈接描述了最好的解決方案。
你也可以有不同的佈局,並且包括CSS在其中:
http://book.cakephp.org/view/1080/Layouts#!/view/1080/Layouts
這都方便,如果一個模型的所有視圖具有相同的CSS或腳本。
這不是你的問題的答案,但... 你可以編程你自己的注射佈局文件。 $ scripts_for_layout的問題是,js和css代碼被注入到頭文件中。如果您編寫自己的實現,則可以將$ scripts_for_layout var(對於js)放在佈局文件的末尾。該提示是:分離...
感謝您的編輯 - 我想它隱藏了我的頭標記 - 我是一個stockoverflow noob :) – Dave 2011-03-29 14:17:54