在Rails 3中,专门用于在资产管道中生成资产的gem被正确放置在assetsGemfile组中:...# Gems used only for assets and not required# in production environments by default.group :assets do gem 'sass-rails' gem 'coffee-rails' gem 'uglifier' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :rubyend现在,根据(仍在进行中的)升级文档:Rails 4.0从Gemfile中删除了资产组。升级时,您需要从Gemfile中删除该行。当然,使用RC1进行新项目会产生一个Gemfile,其中默认包含任何组之外的资产相关的gem:source 'https://rubygems.org'# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'gem 'rails', '4.0.0.rc1'# Use sqlite3 as the database for Active Recordgem 'sqlite3'# Use SCSS for stylesheetsgem 'sass-rails', '~> 4.0.0.rc1'# Use Uglifier as compressor for JavaScript assetsgem 'uglifier', '>= 1.3.0'# Use CoffeeScript for .js.coffee assets and viewsgem 'coffee-rails', '~> 4.0.0'# See https://github.com/sstephenson/execjs#readme for more supported runtimes# gem 'therubyracer', platforms: :ruby...这是否意味着这些宝石现在将默认捆绑在生产版本中?如果是这样,为什么会改变主意?Rails 4是否正在朝着生产中动态生成资产的方向迈进?
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
以前,资产组的存在是为了避免生产中意外进行按需编译。由于Rails 4不再具有这种行为,因此删除资产组是有意义的。
在更改了该内容的提交中对此进行了更详细的说明。我用实际答案提取了一些引号。
如果您使用的是咖啡模板,则可能需要(生产中的)一些宝石,例如咖啡轨,并且现在不再按需在生产中预编译资产这一事实。
(不是在生产中按需进行预编译)意味着,如果您在3.2.x的生产环境中拥有该gems而忘记进行预编译,则Rails将完全按照其在开发中的工作进行操作,并预编译所请求的资产。在Rails 4中,情况不再如此,因此,如果您不使用任务对资产进行预编译,则在请求资产时将获得404。
- 3 回答
- 0 关注
- 665 浏览
添加回答
举报
0/150
提交
取消