Khi chạy nội dung: tác vụ cào trước biên dịch, phiên bản được nén của nội dung ứng dụng được tạo. Theo hướng dẫn Rails cho đường ống nội dung, bạn có thể cấu hình máy chủ web của bạn (trong trường hợp của tôi Apache 2.2) để phục vụ các tệp nén này thay vì có máy chủ web thực hiện công việc.Cách định cấu hình mod_deflate để phân phát nội dung gzipped được chuẩn bị bằng nội dung: biên dịch trước
Những gì tôi không thể tìm ra là làm thế nào để có được mod_deflate cấu hình để các tập tin này được phục vụ thay vì được nén hai lần và sau đó phục vụ?
Tôi có mod_deflate kích hoạt qua httpd.conf:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Và tôi đã chuyển đổi mã trên đường ray dẫn đến đi vào .htaccess ở nơi công cộng/tài sản:
# Some browsers still send conditional-GET requests if there's a
# Last-Modified header or an ETag header even if they haven't
# reached the expiry date sent in the Expires header.
Header unset Last-Modified
Header unset ETag
FileETag None
# RFC says only cache for 1 year
ExpiresActive On
ExpiresDefault "access plus 1 year"
# Serve gzipped versions instead of requiring Apache to do the work
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.gz -s
RewriteRule ^(.+) $1.gz [L]
# without it, Content-Type will be "application/x-gzip"
<FilesMatch .*\.css.gz>
ForceType text/css
</FilesMatch>
<FilesMatch .*\.js.gz>
ForceType text/javascript
</FilesMatch>
Bất kỳ ý tưởng làm thế nào để thiết lập này đúng cách?
Nhận xét nhỏ - nếu không có trong .htaccess, nó CẦN phải nằm trong phần Thư mục, nếu không -s sẽ không hoạt động. – lzap
Ngoài ra, bạn có thể nên đề nghị sử dụng 'application/javascript' thay vì' text/javascript'. Xem [RFC4329] (https://tools.ietf.org/html/rfc4329) trên * Loại phương tiện kịch bản *. – tne
tôi phải làm \t AddEncoding gzip .gz nếu không tốt –
Torsten