开发者

the best way to have separate stylesheets for different actions in Rails

I have one app layout that includes app wide css stylesheets and js files, but some controller's actions need a开发者_高级运维dditional stylesheets that is used only for these action s view? What is the best way to include them?


If your app is typically something like:

<html>
  <head>
    <%= stylesheet_link_tag 'application' -%>
    <%= javascript_include_tag 'yui', 'application' -%>
  </head>
  <body>
    <%= yield -%>
  </body>
</html>

You can add other yield blocks wherever you like, named whatever you want. Typically I used this to include page-specific functionality wherever I like, even to the degree that maybe partials supply their own.

# layouts/application.html.erb
<html>
  <head>
    <%= stylesheet_link_tag 'application' -%>
    <%= javascript_include_tag 'yui', 'application' -%>
    <%= yield :head -%>
  </head>
  <body>
    <%= yield -%>
  </body>
</html>

# views/profiles/show.html.erb
<%= title("#{@user.name}'s Profile") -%>

<% content_for :head do -%>
  <%= javascript_include_tag 'gallery' %>
<% end %>

<%= render @user.photos %>

So on and so forth...


For the javascript, one way to deal with this is using a <%= yield :javascript %> inside your the ... tag in your layout file. Then in your view code, you can use a <% content_for :javascript do %> ...put your javascript here ... <% end %>

This way, your javascript and your html erb code live in the same location.

Javascript that is used throughout the sight can be placed in a global file.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜