2012-07-30 29 views
0

对于某个控制器/操作,我只想提供CSS资产的特定子集。这样的事情可能吗?是否可以仅编译/提供一部分资产?怎么样?

我想是这样的应用程序/视图/布局/ application.html.erb

<% if newsletter_show? %> 
    <%= stylesheet_link_tag "foo", "bar", "baz" %> 
<% else %> 
    <%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> 
<% end %> 

注:当条件为真,我不仅为特定的CSS文件(FOObarbaz),我也故意不提供javascript。

这工作完全在发展,但在生产因为显然我们不能有不相交的样式,它不能因为他们是预编译成为一个整体。任何方式在这个?

回答

0

选项1: 如果添加foo的酒吧和巴兹到预编译,它应该工作:

在配置/ application.rb中:

config.assets.precompile += %w(foo.css bar.css baz.css) 

选项2: 你可以还创建另一个css分组文件:

在应用程序/ assets/stylesheets/newsletter.css中:

/* 
*= require foo 
*= require bar 
*= require baz 
*/ 

在配置/ application.rb中:

config.assets.precompile += %w(newsletter.css) 

在视图:

<% if newsletter_show? %>  
    <%= stylesheet_link_tag 'newsletter' %> 
#... 

不要忘了重新编译资产:)

+0

太感谢您了!我使用了选项2。 – user664833 2012-08-01 21:27:33

相关问题