2012-07-30 37 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

相關問題