Использование сжатия gzip в Sinatra с Ruby

Примечание. У меня был еще один похожий вопрос о том, как GZIP-данные с использованием Ruby zlib, на который техническибыл дан ответ, и я не чувствовал, что могу начать развивать этот вопрос, поскольку на него был дан ответ, поэтому, хотя этот вопрос связан, это не одно и то же...

Следующий код (я полагаю) GZIP'ирует статический файл CSS и сохраняет результаты в переменной result. Но что мне делать с этим в том смысле: как я могу отправить эти данные обратно в браузер, чтобы они распознавались как GZIP, а не исходный размер файла (например, при проверке моей оценки YSlow я хочу, чтобы она правильно помечалась меня за то, что я сжимаю статические ресурсы GZIP).

z = Zlib::Deflate.new(6, 31)
z.deflate(File.read('public/Assets/Styles/build.css'))
z.flush
@result = z.finish # could also of done: result = z.deflate(file, Zlib::FINISH) 
z.close

...следует отметить, что в моем предыдущем вопросе респондент пояснил, что Zlib::Deflate.deflateне будет создавать данные в кодировке gzip. Он будет создавать только данные, закодированные в zlib, поэтому мне нужно будет использовать Zlib::Deflate.newс аргументом windowBits, равным 31, чтобы запустить поток gzip.

Но когда я запускаю этот код, я на самом деле не знаю, что делать с переменной resultи ее содержимым. В Интернете нет информации (которую я могу найти) о том, как отправлять статические ресурсы в кодировке GZIP (например, JavaScript, CSS, HTML и т. д.) в браузер, что ускоряет загрузку страницы.Кажется, каждая статья о Ruby, которую я читаю, основана на том, что кто-то использует Ruby on Rails!!?

Мы очень признательны за любую помощь.

9
задан emboss 17 June 2012 в 18:42
поделиться