2010-09-14 98 views
4

我希望Rails在開發和生產模式下注入不同的js文件。配置Rails在開發和生產中使用不同的js

例子:

發展:

<script src="/javascripts/jquery.js" type="text/javascript"></script> 
<script src="/javascripts/myscripts.js" type="text/javascript"></script> 

生產:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<script src="/javascripts/myscripts.min.js" type="text/javascript"></script> 

是否有可能實現它的Rails 3?

問候, 阿列克謝·扎哈羅夫

回答

1

你可以有一個輔助方法加載JS和它是環境進行健康檢查。

應用程序/視圖/佈局/ application.html。*(無論你一般包括您的JavaScript)

load_javascript 

應用程序/傭工/ application_helper.rb

def load_javascript 
    if Rails.env.production? 
    javascript_include_tag 'js1', 'js2', :cache => true 
    else 
    javascript_include_tag 'js3', 'js4' 
    end 
end 

你可以幹它了load_javascript只給你一個文件列表,並且只有一個javascript_include_tag

6

從至少導軌3,可以通過javascript_include_tag輔助其在可變config.action_view.javascript_expansions你的配置/ application.rb中內定義的符號:defaults [:默認] =

這將目前是註釋掉並且總是至少包含application.js。

如果您想爲生產和開發定義一組不同的默認值,請將此行註釋掉並打開config/environments/production.rb和config/environments/development.rb。此處定義的任何設置都將覆蓋application.rb中的任何設置,並僅應用於相關環境。對於你的例子,你會想要以下內容:

# development.rb 
config.action_view.javascript_expansions[:defaults] = %w(jquery.js myscripts.js) 

# production.rb 
config.action_view.javascript_expansions[:defaults] = %w(http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js myscripts.min.js) 
+2

此外,沒有必要添加.js - 所以%w(jquery myscripts)將工作。 – Purplejacket 2011-08-31 15:26:10

相關問題