Trong Drupal 7, tôi có thể bật / tắt nén gzip ở đâu? Có một mô-đun cho chức năng này?
Trong Drupal 7, tôi có thể bật / tắt nén gzip ở đâu? Có một mô-đun cho chức năng này?
Câu trả lời:
Cá nhân, tôi không thích cách Drupal xử lý nén đầu ra; Tôi chăm sóc điều này bên ngoài Drupal.
Trên trang web Drupal, tôi thêm
$conf['page_compression'] = FALSE;
$conf['css_gzip_compression'] = FALSE;
$conf['js_gzip_compression'] = FALSE;
đến settings.php và điều này với một mô-đun tùy chỉnh để cho thấy rằng điều này bị vô hiệu hóa:
/**
* Implements hook_form_FORM_ID_alter().
*/
function MYMODULE_form_system_performance_settings_alter(&$form, $form_state) {
$form['bandwidth_optimization']['page_compression']['#default_value'] = 0;
$form['bandwidth_optimization']['page_compression']['#disabled'] = TRUE;
$form['bandwidth_optimization']['page_compression']['#description'] = t('Handled by Apache.');
}
Điều này cũng là để ngăn chặn việc nén đầu ra kép ngẫu nhiên, có thể rất khó chẩn đoán nếu bạn không biết về các triệu chứng.
Sau đó, trong cấu hình Apache của tôi, tôi làm
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<IfModule filter_module>
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</IfModule>
<IfModule !mod_filter.c>
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>
Điều này cho phép Apache thực hiện nén đầu ra theo loại MIME và cũng đảm bảo tất cả đầu ra dựa trên văn bản được nén. Điều này được điều chỉnh từ phiên bản cũ hơn của tệp .htaccess của dự án HTML5 Boilerplate, hiện đang nằm trong một dự án riêng biệt . Tôi cũng thêm vào các chỉ thị của họ để kiểm soát bộ đệm và một vài thứ khác. Tôi giữ tất cả những thứ này trong một tệp riêng lẻ, sau đó Include
tôi sẽ lưu trữ trên máy chủ ảo của mình.
Nhược điểm của việc này là máy chủ nén từng yêu cầu, nhưng nó hoạt động tốt cho các trang web của tôi và khách hàng của tôi.
Cache pages for anonymous users
và sau đó lưu các tùy chọn của bạn trênadmin/config/development/performance
trang của bạn . Điều này sau đó sẽ đưa ra mộtCompress cached pages.
tùy chọn tiếp tục xuống trongBANDWIDTH OPTIMIZATION
phần (nó được ẩn / hiển thị qua javascript để tất cả có thể hoạt động ngay từ lần nhấp đầu tiên nhưng không có ở đây vì một số lý do).