加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 在Sinatra应用程序中的gzip资产

发布时间:2020-12-17 03:16:17 所属栏目:百科 来源:网络整理
导读:我一直在阅读使用gzip压缩您的资产将提高网站的性能.在Sinatra应用程序中似乎有很多方法可以做到这一点,因此我希望确认最有效和最简单的方法来理解. 我遇到过 use Rack::Deflater 在运行应用程序之前应将其放在我的config.ru文件中,所以在我的情况下 require
我一直在阅读使用gzip压缩您的资产将提高网站的性能.在Sinatra应用程序中似乎有很多方法可以做到这一点,因此我希望确认最有效和最简单的方法来理解.

我遇到过

use Rack::Deflater

在运行应用程序之前应将其放在我的config.ru文件中,所以在我的情况下

require './david'
use Rack::Deflater
run Sinatra::Application

是吗?是这么简单,只是添加我知道这将拉链我的所有静态资产,包括我的图像,但这些是从CDN提供,所以会有所作为?

Ant帮助赞赏这一个

谢谢

解决方法

这很容易(不是很好:)但如果你想检查,那么看看Content-Encoding响应头,它应该说gzip.在webkit浏览器中,它位于“网络”下的开发人员工具中,然后选择资源,如app.min.css和“Headers”选项卡.

以下博客文章给出了测试方法:

http://artsy.github.io/blog/2012/02/24/10x-rack-and-rails-output-compression-with-rack-deflater/

我将规格修改为shared examples,所以我可以将它们添加到我真正要检查的位置:

shared_examples "Compressed pages" do
  subject { last_response.headers }
  its(["Content-Encoding"]) { should be_nil }
  context "After compression" do
    before do
      get page
      @etag = last_response.headers["Etag"]
      @content_length = last_response.headers["Content-Length"]
      get page,{},{ "HTTP_ACCEPT_ENCODING" => "gzip" }
    end
    its(["Etag"]) { should == @etag }
    its(["Content-Length"]) { should_not == @content_length }
    its(["Content-Encoding"]) { should == "gzip"}
  end
end

我的主要规范使用它像这样:

describe "Public pages" do

    describe "Home page",:type => :request do
      let(:page) { "/" }
      it_behaves_like "Compressed pages"

it_behaves_like“压缩页面”将运行该共享示例并检查它是否具有正确的标题等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读