https://github.com/jasl/erb_minifier
@Ben 的灵感,花了一点时间快速实现
在服务器不能开启 gzip 的情况下,minify 视图模板,可以减小文件体积,提高传输速度。 原理很简单,视图模板的地址和查找顺序在 view_paths 这个 list 里,只需要让 precompiled_views 的优先级高于 app/views 即可 另外提供了 rake views:precompile 这个 task 用来 minify 视图模板
我之前有这么做过:
# 去除区域里面的内容的换行标记 def spaceless(&block) data = with_output_buffer(&block) data = data.gsub(/\n\s+/," ") data = data.gsub(/>\s+</,"> <") raw data end
然后在 apllication.html.erb 里面把内容包起来
你这个是处理 erb 的内容,还是页面执行过后的 HTML 内容?
@huacnlee 只处理 erb。考虑过处理执行过后的 html,但是这样的话性能会非常那啥。。。于是放弃了 这个东西使用场景比较有限吧,没法开启 gzip 的情况,另外 haml 自身就有 minify 的功能也不必要了
@huacnlee 我想明白了,单纯去掉多余的空格和换行,体积并不会降低多少。如果可以的话,渲染完成之后压缩 然后在响应头上增加 content-encoding: gzip 会更好