2016-08-24 62 views
0

我在Heroku上有一個Rails 5.0.0.1應用程序,當我在Chrome中打開開發者控制檯並打開CSS和JS文件時,我可以看到它們都沒有被縮小。在完成Google速度測試後,這首先引起了我的注意。我的Rails 5資產都沒有在生產中縮小

這是我的一些設置的樣子......

application.js

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui/autocomplete 
//= require bootstrap-sprockets 
//= require trix 
//= require_tree . 

application.scss

//Import bootstrap-sprockets 
@import "bootstrap-sprockets"; 


// Import cerulean variables 
@import "bootswatch/flatly/variables"; 

// Then bootstrap itself 
@import "bootstrap"; 
@import "font-awesome"; 

// Bootstrap body padding for fixed navbar 
/*body { padding-top: 60px; }*/ 

// And finally bootswatch style itself 
@import "bootswatch/flatly/bootswatch"; 

// Whatever application styles you have go last 
@import "overrides"; 
@import "trip"; 

我用下面的寶石:

gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'bootstrap-sass', '~> 3.3.6' 
gem 'bootswatch-rails' 
gem 'bootstrap-social-rails' 
gem 'bootstrap_form' 

和我有以下選項中production.rb

# Compress JavaScripts and CSS. 
config.assets.js_compressor = :uglifier 
config.assets.css_compressor = :sass 

# Do not fallback to assets pipeline if a precompiled asset is missed. 
config.assets.compile = false 

我預編譯的設置和清理資產,我甚至碰到過使用

Rails.application.config.assets.version = '1.1' 

我甚至核爆地獄資產版本我的資產文件夾使用rake assets:clobber

現在真的很茫然,爲什麼這些資產都沒有縮小。任何幫助深表感謝。

+0

當您在本地運行'rake assets:precompile'時,是否縮小了輸出的資產?您需要暫時將您的development.rb設置設置爲與生產相同,以便正確測試此設置。 –

+0

沒有。當我這樣做時,仍然沒有對css或js文件進行縮小 – BillyBib

+0

您的資產是否像您期望的那樣被編譯爲'application.css/application.js'文件?你有沒有嘗試過設置'config.assets.debug = false'?這是從升級到Rails 5以來的新行爲嗎? –

回答

1

總結我和OP對主要職位的評論的結論,問題不在於縮小不起作用,而在於縮小的資產沒有被使用。這是因爲某一點的資產已經預編譯成public/assets並簽入Git;公共的,無信息的資產在服務時優先於被縮小的資產。

的解決方案,那麼,是從Git的刪除這些文物:

git rm -r public/assets 

檢查預編譯的資產注入版本控制一般不提倡,雖然這取決於您的部署系統。用Heroku,通常沒有必要。有關更多詳細信息,請參見Do you add public/assets in version control?

2

你的Gemfile是什麼樣的? uglifier是否有JavaScript運行器? therubyracer經常被使用,並且我對mini_racer及其增強的性能感到非常滿意。

在你的Gemfile:

gem 'mini_racer' 

然後運行bundle install和承諾。