在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 關注
- 698 瀏覽
添加回答
舉報
0/150
提交
取消