Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 基于路径| |控制器使用rails样式表_link|标记?_Css_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Css 基于路径| |控制器使用rails样式表_link|标记?

Css 基于路径| |控制器使用rails样式表_link|标记?,css,ruby-on-rails,ruby-on-rails-4,Css,Ruby On Rails,Ruby On Rails 4,在我的应用程序布局中,我有一个条件,它有助于根据当前用户的存在来决定使用什么样式表: <% if current_user %> <%= stylesheet_link_tag 'application', media: 'all', id: "maincss" %> <% else %> <%= stylesheet_link_tag 'session', media: 'all', id: "maincss" %> <% end

在我的应用程序布局中,我有一个条件,它有助于根据当前用户的存在来决定使用什么样式表:

<% if current_user %>
  <%= stylesheet_link_tag 'application', media: 'all', id: "maincss" %>
<% else %>
  <%= stylesheet_link_tag 'session', media: 'all', id: "maincss" %>
<% end %>
你可以尝试使用

<%= stylesheet_link_tag *([params[:controller], params[:action]] + (params[:id] || '').split('/')) %>

如果您同意使用
password\u reset.css而不是
password\u reset.css


注意:您也可能会得到一些不需要的链接标记,这可能会导致无害的404响应(日志除外)

以下是我在项目中所做的:

在布局文件中,添加一个
yield
方法,如下所示:

<html>
  <head>
    ...
    ...
    <%= yield(:head) %>
  </head>
  ...

...
...
...
在任何需要自定义CSS的视图页面(.erb文件)中,我都会在页面顶部添加类似的内容

 <% content_for :head do %>
   <%= stylesheet_link_tag 'custom_css_filename', media: 'all' %>
 <% end %>

这样,样式表将只放在该页面的正确位置

注意:

如果您想为应用程序中的每个URL包含自定义样式表,您应该使用上一个答案中建议的内容。

您可以使用以下
##在此处包含样式表它只会为密码重置控制器的编辑操作加载
 <% content_for :head do %>
   <%= stylesheet_link_tag 'custom_css_filename', media: 'all' %>
 <% end %>