有没有办法在ERB模板中使用Sinatra剥离HTML空格?
Slim引擎开箱即用,但我不知道ERB如何做到这一点。
答案 0 :(得分:2)
使用下面的正则表达式从HTML中去除空格。这不是更好的方法(由于HTML的性质不适合正则表达式)。但是,它运作良好。
(?<=[^])\t{2,}|(?<=[>])\s{2,}(?=[<])|(?<=[>])\s{2,11}(?=[<])|(?=[\n])\s{2,}
答案 1 :(得分:1)
使用Rack::Deflater中间件进行gzip压缩(常规HTTP内容)。
答案 2 :(得分:0)
Sinatra允许您创建自己的中间件,可能的解决方案(对我有用)是创建自定义类(Sinatra术语中的中间件)并使用它。自定义类使用正则表达式删除所有空格,尊重内容:
class ObfuscateHTML
def initialize(app, options = {})
@app = app
end
def call(env)
status, headers, response = @app.call(env)
if headers["Content-Type"] =~ /\bhtml\b/
response[0] = response[0].gsub(/\s*(<[^>]+>)\s*/, '\1')
headers["Content-Length"] = response[0].size.to_s
end
[status, headers, response]
end
end
use ObfuscateHTML