【问题标题】:Rails not minifyingRails 没有缩小
【发布时间】:2013-10-07 21:19:44
【问题描述】:

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

很遗憾,我从来没有遇到过这个问题,我只是不太熟悉资产管道如何详细调试问题。

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

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

到目前为止,我已将config.assets.js_compressor = :uglifier 添加到production.rb,并将uglifier 添加到Gemfile,但仍然没有骰子。

我正在使用从 Rails 2 升级的 Rails 3.2.12

【问题讨论】:

    标签: ruby ruby-on-rails-3 ruby-on-rails-3.2 asset-pipeline


    【解决方案1】:

    此答案适用于 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,请注意 production.rb 中的 config.assets.compress = true 指令对 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
    

    【讨论】:

    • 请注意,如果您使用sass-rails,则无需指定config.assets.css_compressor,如文档所述(guides.rubyonrails.org/…
    • 另请注意,除非原始文件已更改,否则第二次运行 assets:precompile 不会做任何事情。在您退回服务器之前,您不会看到生产中的变化。
    【解决方案2】:

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

    rake assets:precompile
    

    或者您使用 capistrano 进行部署?如果您使用 capistrano 进行部署,请确保在 deploy.rb 顶部添加此行

    load 'deploy/assets'
    

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

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      相关资源
      最近更新 更多