2011-07-27 13 views
4

cssファイルとjavascript/jqueryファイルをコントローラ/ビューにリンクするにはどうすればいいですか?cssファイルとjavascriptファイルをリンクするCakePHP

私はCakePHP_1.3を使用していて、次のコードをオンラインに置いていますが、どこに置くべきか、そしてcss_fileという名前のcssファイルをどこに置くかはわかりません。あなたのdefault.ctpレイアウトのコード行を置く

app/ 
    webroot/ 
     css/ <-- here 

<?php $this->Html->css("css_file", null, array("inline"=>false)); ?> 

すべてのヘルプ感謝の男...

答えて

13

はあなたにはCSSファイルを置きます。これは、(1.3)に位置しています:

cake/ 
    libs/ 
     view/ 
     layouts/ 
      default.ctp <-- copy this to app/views/layouts/ 

その後app/views/layouts/default.ctpをそのを開き、HTMLを見てください。 Cakeがすでにこのコマンドを使用している場所がわかります。追加したファイルでファイル名を置き換えてください。 でない場合コード行を追加するときに末尾に.cssを追加します。

+0

チャールズさんに感謝し、javascript/jqueryファイルを組み込むのと同じ方法ですか? –

+2

@ DJDonaL300もちろん、 'app/webroot/js /'にファイルを置いて、 ' 'が表示されます。 – cspray

6

あなたはビュー

4

あなたの質問に基づいて、それはあなたがビュー・バイ・ビュー毎にこれを行う方法を求めていたような音にecho $this->Html->css('css_file_name_without_the_extension');echo $this->Html->script('same')を使用しています。

ここには$scripts_for_layoutが便利です。

はちょうどその後、あなたは文字通りあなたが好き文字通り任意の時点で、あなたのビューのいずれかにあなたの質問にあなたが含まれるコードを追加することができます<?php echo $scripts_for_layout; ?>

として/app/views/layouts/default.ctpであなたの<head>タグに、それはだことを確認する必要があります。

<?php $this->Html->css("css_file", null, array("inline"=>false)); ?> 

を...そしてあなたはその特定のビューがロードされるたびにcss_file.cssが自動的に<head>にリンクされていることがわかります:あなたは'inline' => falseを持っているので、それは実際にはビュー内のその位置に表示されなくなります。これは、必要なときに特定のCSSファイルをビュー単位で読み込むだけで、表示されているはずの<head>タグに表示されていることを確認するのに最適です。

これは次のようにもJavaScriptのために働く:

<?php $this->Html->script("js_file", null, array("inline"=>false)); ?> 

を使用すると、すべてのビューにロードされた1つ以上のCSSファイルを持っているしたい場合は、次のようにちょうどdefault.ctp<head>に短縮バージョンのコードを置く:

<?php echo $html->css(array('each','one','of','your','css','files')); 

それとも、再び、JavaScriptのために:

<?php echo $html->script(array('each','one','of','your','js','files')); 

配列に.cssまたは.js拡張子を含めないでください。

関連する問題