Di Drupal 7, di mana saya bisa mengaktifkan / menonaktifkan kompresi gzip? Apakah ada modul untuk fungsi ini?
Di Drupal 7, di mana saya bisa mengaktifkan / menonaktifkan kompresi gzip? Apakah ada modul untuk fungsi ini?
Jawaban:
Secara pribadi, saya tidak suka cara Drupal menangani kompresi keluaran; Saya mengurus ini di luar Drupal.
Di situs Drupal, saya menambahkan
$conf['page_compression'] = FALSE;
$conf['css_gzip_compression'] = FALSE;
$conf['js_gzip_compression'] = FALSE;
ke settings.php, dan ini ke modul khusus untuk menunjukkan bahwa ini dinonaktifkan:
/**
* 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.');
}
Ini juga untuk mencegah kompresi double output yang tidak disengaja, yang bisa sangat sulit untuk didiagnosis jika Anda tidak tahu tentang gejalanya.
Kemudian, dalam konfigurasi Apache saya, saya lakukan
<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>
Ini memungkinkan Apache melakukan kompresi output berdasarkan tipe MIME, dan juga memastikan semua output berbasis teks dikompresi. Ini diadaptasi dari versi yang lebih lama dari file .htaccess proyek HTML5 Boilerplate proyek, yang sekarang tinggal di proyek terpisah . Saya juga menambahkan arahan mereka untuk kontrol cache, dan beberapa hal lainnya. Saya menyimpan semua ini di file individual, yang saya kemudian Include
di host virtual saya.
Kelemahan dari ini adalah bahwa server memampatkan setiap permintaan, tetapi berfungsi dengan baik untuk situs saya dan klien saya.
Cache pages for anonymous users
dan kemudian menyimpan opsi Anda diadmin/config/development/performance
halaman Anda . Ini kemudian akan menyajikanCompress cached pages.
opsi lebih lanjut diBANDWIDTH OPTIMIZATION
bagian (ini disembunyikan / ditampilkan melalui javascript sehingga ini semua bisa berfungsi pada klik pertama tetapi tidak di sini karena beberapa alasan).