参见英文答案 >
Using Rails 3.1,where do you put your “page specific” JavaScript code?29个
我想为我的Rails应用程序测试两个不同的接口.理想情况下,我希望有两个单独的css文件,一个与每个接口相关联(例如,new_interface.css和old_interface.css).我目前有两个不同的接口部分,一个叫_new_interface.html.erb,一个叫_old_interface.html.erb.如果我想在加载特定视图时调用正确的css文件,我该怎么做?例如,如果我加载_new_interface.html.erb,我希望它加载new_interface.css文件并忽略old_interface.css文件.
我想为我的Rails应用程序测试两个不同的接口.理想情况下,我希望有两个单独的css文件,一个与每个接口相关联(例如,new_interface.css和old_interface.css).我目前有两个不同的接口部分,一个叫_new_interface.html.erb,一个叫_old_interface.html.erb.如果我想在加载特定视图时调用正确的css文件,我该怎么做?例如,如果我加载_new_interface.html.erb,我希望它加载new_interface.css文件并忽略old_interface.css文件.
我的application.css:
/* *= require_tree */
解决方法
这个问题似乎针对您需要做的事情:
Using Rails 3.1 assets pipeline to conditionally use certain css
简而言之,您需要将app / assets / stylesheet文件夹重新组织到一些子目录中并更改清单文件,以便在运行时不会将所有内容捆绑在一起.
然后,您可以在视图中放置一些条件逻辑,以便为作业加载正确的css. content_for标签可能在这里很有用.您可以编辑app / views / layouts / application.html.erb并在其他javascript<%= yield:view_specific_css%>之后添加一行.然后在您的视图文件中,您可以使用
<% content_for :view_specific_css do %> <%= stylesheet_link_tag "whatever %> <% end %>