在我的应用程序布局中,我有这个条件,它有助于根据current_user的存在来决定使用哪个样式表:
<% if current_user %>
<%= stylesheet_link_tag 'application', media: 'all', id: "maincss" %>
<% else %>
<%= stylesheet_link_tag 'session', media: 'all', id: "maincss" %>
<% end %>
但是如何根据网址指定要使用的样式表?
例如,我想为此路径使用'password_reset.css'文件
get '/set/:password_reset_token' => 'password_resets#edit'
答案 0 :(得分:1)
您可以尝试使用
<%= stylesheet_link_tag *([params[:controller], params[:action]] + (params[:id] || '').split('/')) %>
如果您可以使用password_resets.css
代替password_reset.css
注意:您可能会收到一些不需要的链接标记,这可能会导致无害(日志除外)404响应
答案 1 :(得分:0)
以下是我在项目中的工作:
在布局文件中,添加yield
方法,如下所示:
<html>
<head>
...
...
<%= yield(:head) %>
</head>
...
在需要自定义CSS的任何视图页面(.erb文件)中,我会在页面顶部添加类似这样的内容。
<% content_for :head do %>
<%= stylesheet_link_tag 'custom_css_filename', media: 'all' %>
<% end %>
这样,样式表将仅在该页面的正确位置。
注意:强>
如果要为应用程序中的每个URL包含自定义样式表,则应使用上一个答案中建议的内容。