- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在apache htdocs中,我只想有压缩文件(gzip文件)并基于请求接受的编码类型,如果启用了gzip编码,我希望apache提供压缩文件,如果不支持gzip编码,那么我希望 apache 通过解压缩 gzip 文件来提供服务。
我不想保留未压缩的文件并在访问时使用 deflate 进行压缩,因为这效率低下,并且默认情况下所有客户端都支持 gzip 编码。
通过同时拥有压缩文件和未压缩文件(example.js 和 example.jsgz 均位于 htdocs 目录中),我能够通过对请求接受的编码和 RedirectRules 使用 RedirectCond 来完成这项工作。但这需要存储两个文件(压缩文件和普通文件)。以下是我与重定向规则一起使用的配置。
<Directory /var/www/app>
AddEncoding gzip .jsgz .cssgz .htmlgz
AddType text/javascript .jsgz
AddType text/css .cssgz
AddType text/html .htmlgz
SetEnv force-no-vary
Header set Cache-Control "private"
RewriteEngine on
# If client accepts compressed files
RewriteCond %{HTTP:Accept-Encoding} gzip
# and if compressed file exists
RewriteCond %{REQUEST_FILENAME}gz -f
# send .htmlgz instead of .html
RewriteRule ^(.+)\.(html|css|js)$ $1.$2gz [L]
</Directory>
我不想像上面那样做,因为我必须保留每个文件的两个版本。
例如:
htdocs 内应用程序目录的内容
ls app/
example.jsgz
应用程序目录的服务器端 apache 配置
在这种情况下,使用 MultiView 选项,当请求文件是 example.js 时,我能够服务器 example.jsgz,因为 example.js 不存在。我的apache端的配置如下:
<Directory /var/www/htdocs/app>
AddEncoding gzip .jsgz .cssgz .htmlgz
AddType text/javascript .jsgz
AddType text/css .cssgz
AddType text/html .htmlgz
Options +Multiviews
SetEnv force-no-vary
Header set Cache-Control "private"
</Directory>
案例1:
请求 header 表示支持 gzip 编码。请求的 url 是 example.js 而不是 example.jsgz。这是有效的,example.jsgz 文件的内容编码为 gzip,客户端可以解压缩并使用该 js 文件。
Request URL:http://A.B.C.D/app/example.js
Request Method:GET
Request HTTP headers:
Accept-Encoding:gzip,deflate,sdch
Response Headers:
Content-Encoding:gzip
案例2:
请求 header 表示不支持 gzip 编码。请求的 url 是 example.js 而不是 example.jsgz。这不起作用,因为 apache 正在提供 example.jsgz 服务,并且客户端因不支持 gzip 编码而失败。
Request URL:http://A.B.C.D/app/example.js
Request Method:GET
Request HTTP headers:
Response Headers:
Content-Encoding:gzip
当客户端不支持 gzip 编码时,是否有办法通过在 htdocs 中包含压缩文件来处理情况 2?
我读过有关充气和放气选项的内容。还有关于多 View 选项。但是当目录包含压缩格式(gzip 编码)的多种类型的内容(javascript、css、html)时,我没有在目录级别找到示例。
提前致谢
最佳答案
看起来这就是您所需要的 http://www.innerjoin.org/apache-compression/howto.html
虽然我还没有尝试过。
另一种选择可能是使用某种脚本语言来运行解压并响应(php、ruby、perl...)
就性能而言,同时拥有两个版本是最好的选择,因为它不需要任何额外的努力。
关于apache - 如何仅通过压缩文件根据请求接受的编码类型提供压缩/未压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990157/
我需要一个算法,将帧(图片)写入一个文件,该文件可以被一些视频剪辑/制作软件读取以进行处理。 所以我得到了框架,我想给他们一个函数/方法的输入。让我们用 Java 来做吧。 我该怎么做?有没有一种简单
我正致力于为我们的一些系统之间的交互实现 GZIP 压缩。这些系统是用 Java 和 C# 编写的,因此双方都使用了 GZIP 流,因为它们具有标准库支持。 在 C# 方面,一切正常,包括我们最大的测
我的 Assets 没有被压缩。我正在使用 3.2.18, Assets 组具有这些 gems: group :assets do gem "compass-rails" gem 'coffe
这个问题在这里已经有了答案: Externalizing Tomcat webapp config from .war file (4 个答案) 关闭 7 年前。 我的应用程序 WAR 已经内置了一
我想将来自设备的未压缩帧存储为视频,但我需要知道如何选择“全帧(未压缩)”作为 VideoWriter(在 emgu aka openCV 中)的编解码器。 当我像这样传递 -1 时,我可以从下拉菜单
我注意到有些时候“另存为..”,上面写着“XFL 文件”“未压缩的 Flash 文件”。它有什么用?为什么我需要它而不是 FLA? 最佳答案 这是新的文件格式。它只不过是一个包含一个或多个 xml 之
我使用WiX3生成MSI安装包。我已在 中指定了压缩标志和元素: 但是生成的 MSI 根本没有被压缩 - WinZip 将其从 2M 压缩到 600K。 我错过了什么吗? 顺便说一句,我正在使用
有谁知道 Asp.Net 内容交付网络上的 jQuery 文件的缩小版本未进行 gzip 压缩是否有原因?非缩小版本已正确压缩。 示例: http://ajax.aspnetcdn.com/ajax/
当请求的内容长于表中的几行时,我在 Swift 4.2 中执行 HTTP 请求时遇到问题。我正在开发一个应用程序,需要显示 30 - 40 行的概述,每行包含 4-5 个变量。 我使用 HTTPReq
我有一些 .gz 压缩文件,未压缩时大约有 5-7gig。这些是平面文件。 我写了一个程序,它接受一个未压缩的文件,并逐行读取它,效果很好。 现在我希望能够打开内存中的压缩文件并运行我的小程序。 我研
我有一个灰度 TIFF 原始图像。我想在图片框中显示它,然后使用 AForge.Net 进行一些操作。我想知道最好的做法是什么。我无法显示图像 - 我要么得到黑色的“图片框”尝试转换为灰度时出现错误“
我是一名优秀的程序员,十分优秀!