11

我正在开发一个不会在生产中缩小 CSS 或 JS 的项目。

不幸的是,我从来没有遇到过这个问题,而且我对资产​​管道如何详细调试问题不是很熟悉。

我的问题是,我需要检查哪些要点/设置以确保已启用?

它正确地将不同的文件组合成一个 JS 和 CSS 文件......它只是没有缩小。

到目前为止,我已经添加config.assets.js_compressor = :uglifierproduction.rbuglifierGemfile但仍然没有骰子。

我正在使用从 Rails3.2.12升级的 Rails2

4

2 回答 2

38

这个答案适用于 rails 4

rails-4 不会缩小资产的原因之一是当 RAILS_ENV 未设置为生产时。

这通常发生在您预编译资产并使用 prod 模式运行 webrick 时:
rails s -e 'production'
但生成的 application.css 和 application.js 仍然连接但未缩小

要解决此问题,请在预编译资产时使用以下命令指定环境:

$ RAILS_ENV=production bundle exec rake assets:precompile

此外,如果您从 rails 3 升级到 rails 4,请注意config.assets.compress = trueproduction.rb 中的指令对 rails 4 不再有效。您需要在config/environments/production.rb文件中添加以下指令以缩小 js 和 css 文件:

  # Compress JavaScripts and CSS.
  config.assets.js_compressor = :uglifier # make sure the 'uglifier' gem is included before adding this line
  config.assets.css_compressor = :sass # if you are using the sass-rails gem, this line is unnecessary
于 2014-02-12T05:11:17.053 回答
0

你怎么知道它没有缩小?你跑了吗

rake assets:precompile

还是您使用 capistrano 进行部署?如果您使用 capistrano 进行部署,请确保将此行添加到 deploy.rb 之上

load 'deploy/assets'

否则,请发布您为使其正常工作所采取的步骤

于 2013-10-07T22:15:57.607 回答