【发布时间】:2016-08-24 15:36:30
【问题描述】:
我在 Heroku 上有一个 Rails 5.0.0.1 应用程序,当我在 Chrome 中打开开发者控制台并打开 CSS 和 JS 文件时,我可以看到它们都没有被缩小。这是在完成 Google 速度测试后首次引起我注意的。
这就是我的一些设置的样子...
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从我的资产文件夹中删除了地狱
现在真的不知道为什么这些资产都没有缩小。非常感谢任何帮助。
【问题讨论】:
-
当你在本地运行
rake assets:precompile时,输出的资产是否被缩小了?您需要将 development.rb 设置临时设置为与生产环境相同,以便正确测试。 -
不。当我这样做时,仍然没有缩小 css 或 js 文件
-
您的资产是否像您期望的那样被编译成
application.css/application.js文件?你试过设置config.assets.debug = false吗?这是升级到 Rails 5 后的新行为吗? -
是的,它们被编译成
application.css/application.js和applicaiton.css.gz and application.js.gz。我刚刚尝试设置config.assets.debug = false,但这并没有改变任何东西。这不是升级以来的新行为。还有一些奇怪的事情——如果我在 GitHub 上查看,这个项目显然是 64% 的 CSS,这明显高于我所有其他 Rails 项目 -
您的问题可能是正在使用这些资产,而不是在 Heroku 部署期间构建的资产。我建议删除所有这些资产 (
git rm -r public/assets) 并再次部署。但是,如果这会破坏您的生产站点,请准备回滚到以前的版本!
标签: ruby-on-rails heroku asset-pipeline