2009年8月28日金曜日

Railsで View内で head要素にCSS等を追加する方法

Railsで特定のページだけにCSSファイルを追加する方法を見て知った。これは便利。


application.html.erb等で、 yieldにパラメータを指定すればOK。

<html>
<head>
<title>テスト</title>

<%= yield :head %>

</head>
<body>

<%= yield %>

<%= yield :foot %>

</body>
</html>

Viewの方ではcontent_forに同じパラメータを指定してブロック内に書く。
<h1>head and foot</h1>

<% content_for :head do %>
 <%= stylesheet_link_tag "foo" %>
<% end %>

<% content_for :foot do %>
 <%= javascript_include_tag "bar" %>
<% end %>

こんな感じのHTMLになる。
<html>
<head>
<title>テスト</title>

<link href="/stylesheets/foo.css?1345990170" media="screen" rel="stylesheet" type="text/css" />

</head>
<body>

<h1>head and foot</h1>

<script src="/javascripts/bar.js?1350833305" type="text/javascript"></script>

</body>
</html>


これを使えばCSSはhead内に、JavaScriptはbody要素の最後に入れられる。

0 件のコメント:

ブログ アーカイブ

tags