首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Rails以在开发和生产中使用不同的js

问配置Rails以在开发和生产中使用不同的js
EN

Stack Overflow用户
提问于 2010-09-15 02:01:30
回答 2查看 2.1K关注 0票数 5

我希望Rails能够在开发和生产模式下注入不同的js文件。

示例:

开发:

代码语言:javascript
复制
<script src="/javascripts/jquery.js" type="text/javascript"></script>
<script src="/javascripts/myscripts.js" type="text/javascript"></script>

生产:

代码语言:javascript
复制
<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>

在Rails3中实现它是可能的吗?

致敬,阿列克谢·扎哈罗夫

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-15 02:16:18

您可以使用助手方法加载您的js,并执行条件检查,以确定它是哪种环境。

app/views/layout/application.html.*(通常包含javascript的地方)

代码语言:javascript
复制
load_javascript

app/helpers/application_helper.rb

代码语言:javascript
复制
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,这样可以让它变得更加枯燥。

票数 1
EN

Stack Overflow用户

发布于 2011-04-07 08:50:52

至少在Rails3中,您可以向javascript_include_tag助手传递符号:defaults,该符号是在配置/应用程序.rb中的变量config.action_view.javascript_expansions:defaults =

这将在当前被注释掉,并且至少将始终包括application.js。

如果您想为生产和开发定义一组不同的默认值,那么将该行注释掉,并打开config/environment/production.rb和config/environment/development.rb。此处定义的任何设置都将覆盖application.rb中的任何设置,并且仅适用于相关环境。对于您的示例,您需要以下内容:

代码语言:javascript
复制
# 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)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3711596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档