2016-08-24 63 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和承诺。