Wo kann ich in Drupal 7 die gzip-Komprimierung aktivieren / deaktivieren? Gibt es ein Modul für diese Funktionalität?
Wo kann ich in Drupal 7 die gzip-Komprimierung aktivieren / deaktivieren? Gibt es ein Modul für diese Funktionalität?
Antworten:
Persönlich mag ich nicht, wie Drupal mit der Ausgabekomprimierung umgeht. Ich kümmere mich außerhalb von Drupal darum.
Auf der Drupal-Seite füge ich hinzu
$conf['page_compression'] = FALSE;
$conf['css_gzip_compression'] = FALSE;
$conf['js_gzip_compression'] = FALSE;
zu settings.php und dies zu einem benutzerdefinierten Modul, um zu zeigen, dass dies deaktiviert ist:
/**
* 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.');
}
Dies dient auch dazu, eine versehentliche Komprimierung der doppelten Ausgabe zu verhindern, die sehr schwer zu diagnostizieren sein kann, wenn Sie die Symptome nicht kennen.
Dann mache ich es in meiner Apache-Konfiguration
<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>
Auf diese Weise kann Apache die Ausgabekomprimierung nach MIME-Typ durchführen und sicherstellen, dass alle textbasierten Ausgaben komprimiert werden. Dies wurde aus einer älteren Version der .htaccess-Datei des HTML5 Boilerplate-Projekts übernommen, die sich jetzt in einem separaten Projekt befindet . Ich füge auch in ihren Anweisungen für die Cache-Kontrolle und ein paar andere Dinge hinzu. All das behalte ich in einer einzelnen Datei, die ich dann Include
in meinen virtuellen Hosts habe.
Der Nachteil dabei ist, dass der Server jede Anforderung komprimiert, aber für meine Websites und meine Clients gut funktioniert.
Cache pages for anonymous users
und speichern Sie dann Ihre Optionen auf Ihreradmin/config/development/performance
Seite. Dies zeigt dann eineCompress cached pages.
Option weiter unten imBANDWIDTH OPTIMIZATION
Abschnitt an (sie wird über Javascript ausgeblendet / angezeigt, sodass dies alles beim ersten Klicken funktionieren kann, aber aus irgendeinem Grund hier nicht).