对于某个控制器/操作,我只想提供CSS资产的特定子集。这样的事情有可能吗?
我想要 app / views / layouts / application.html.erb
中的类似内容<% if newsletter_show? %>
<%= stylesheet_link_tag "foo", "bar", "baz" %>
<% else %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<% end %>
注意:当条件为真时,我不仅要提供特定的css文件( foo , bar 和 baz ),我也故意不提供javascript。
这在开发中完美无缺,但在生产中它失败了,因为显然我们不能有不相交的样式表,因为它们是预先编译的整体。有什么方法吗?
答案 0 :(得分:0)
选项1 : 如果你将foo bar和baz添加到预编译中,它应该可以工作:
在config / application.rb中:
config.assets.precompile += %w(foo.css bar.css baz.css)
选项2 : 您还可以创建另一个css分组文件:
在app / assets / stylesheets / newsletter.css中:
/*
*= require foo
*= require bar
*= require baz
*/
在config / application.rb中:
config.assets.precompile += %w(newsletter.css)
在视图中:
<% if newsletter_show? %>
<%= stylesheet_link_tag 'newsletter' %>
#...
不要忘记重新编译资产:)