我提供了一个javascript文件,它是在请求时定制的。我通过一个控制器来做这件事。我创建了一个模板views/controller_name/custom.js.cafee
首先,我偶然发现了咖啡脚本没有在生产环境中编译的问题,但通过将两个gem咖啡-rails和uglifier移到资产组之外,这个问题得到了解决。
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'mysql2'
gem 'yui-compressor'
end
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'现在这个部分可以工作了,但是脚本没有被uglifier处理。我的问题是,如何缩小以这种方式提供的javascript?
谢谢
发布于 2013-07-24 12:16:57
编写一个after_filter:
class TestController < ApplicationController
respond_to :js
after_filter :uglify, :only => :custom
def custom
@ivar = 'Custom'
end
def uglify
response.body = Uglifier.new.compile(response.body)
end
end我实际上尝试过这个方法(因为我从来没有动态生成过JavaScript,也从来没有写过after_filter),而且它起作用了。对于after_filter来说,这似乎是一个完美的例子:响应主体是JavaScript,并且您希望在将响应发送到客户端之前修改响应(通过使其丑化)。
https://stackoverflow.com/questions/9230800
复制相似问题