遇见了这么一个问题,我在 precompile 了 assets 之后,application 里面的代码却包含了我所有的 js 注释
最典型的就是 gem jquery-rails 了,application 里包含了 jquery, 但是是有注释版本的 自己写的 js 也没有删除空格和换行什么的 只是 precompile 后,这些文件合并成了一个大 application-XXXXX.js 文件,这个文件有 200-300k 我想压缩了 jquery 之后估计就几十 k 吧
目前我知道的一个解决方案是在 application.js 中将 require jquery 换成 require jquery.min
但这没解决问题,只是在外部调用了一个压缩好了的 jquery 而已,不是 precompile 的时候压缩的
还请问这是个什么原理? 新手,问题低级还请海涵
bash 下查看版本 uglifyjs --version uglify-js 2.3.6
gemfile
source 'http://ruby.taobao.org'
gem 'rails', '4.0.0'
gem 'sqlite3'
gem 'bootstrap-sass'
gem 'devise'
gem 'nokogiri'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
group :doc do
gem 'sdoc', require: false
end
config/application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
Bundler.require(:default, Rails.env)
module BaseStation
class Application < Rails::Application
end
end
config/enviorments/production.rb
BaseStation::Application.configure do
config.cache_classes = true
config.eager_load = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.js_compressor = :uglifier
config.assets.compile = false
config.assets.digest = true
config.assets.version = '1.0'
config.log_level = :info
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
config.log_formatter = ::Logger::Formatter.new
end