0
Этот код не работает в Firefox 38.0.1 (Content Encoding Error) и Google Chrome 42.0.2311.152 (ERR_CONTENT_DECODING_FAILED), однако он работает с Opera 12.16 и локон (с --compressed опция):Как правильно использовать Ruby CGI-модуль для вывода gzipped?
#!/usr/bin/ruby
require "cgi"
require "zlib"
cgi=CGI.new(:accept_charset => "UTF-8")
#header
puts "Content-Type: text/html; charset=\"UTF-8\""
puts "Content-Encoding: gzip"
puts
#generating some html output
output=""
output << "<html><body><style> p {line-height:20%;font-size:9px;font-family:monospace} a {text-decoration:none} a[title]:hover:after {font-size:9px;font-family:monospace}</style>"
output << "<p style='text-align:center'>#{Time.now}</p>"
output << "<p>#{"-"*190}</p>"
output<<"</body></html>"
z = Zlib::Deflate.new(9)
compressed = z.deflate(output,Zlib::FINISH)
z.close
puts compressed
этот код работает во всех браузера, и локон тоже:
#!/usr/bin/ruby
require "cgi"
require "zlib"
cgi=CGI.new(:accept_charset => "UTF-8")
puts "Content-Type: text/html; charset=\"UTF-8\""
puts "Content-Encoding: gzip"
puts
output=""
output << "<html><body><style> p {line-height:20%;font-size:9px;font-family:monospace} a {text-decoration:none} a[title]:hover:after {font-size:9px;font-family:monospace}</style>"
output << "<p style='text-align:center'>#{Time.now}</p>"
output << "<p>#{"-"*190}</p>"
output<<"</body></html>"
File.write("gzip.temp",output)
compressed=IO.popen("cat gzip.temp|gzip -c","r").read
puts compressed