2013-04-26 9 views
8

Ich habe mod_pagespeed auf unserem Server installiert, aber es wird nicht meine CSS und JS auf unserer Website oktoberfest.it kombinieren. Offensichtlich habe ich combate_css, combine_javascript und PassThrough in Filtern in pagespeed.conf Datei aktiviert.mod_pagespeed kombiniert CSS und JS nicht

Ich habe auch gelesen, dass mod_pagespeed CSS-Dateien, die CSS3-Direktiven enthalten, nicht kombinieren kann, aber in meiner Apache-Protokolldatei gibt es nach dem Aktivieren von LevelLog-Debug natürlich keine Fehler oder Infos über Fehler beim Kombinieren. Weder CSS noch JS.

Ich habe versucht, zu:

  1. readd CoreFilters
  2. Reboot Apache
  3. mod_pagespeed Cache mit Touch /var/mod_pagespeed/cache/cache.flush
  4. alle Filter außer combine_css deaktivieren löschen und combine_javascript
  5. Ich habe überprüft, dass Ordner in .config-Datei angezeigt werden CHMOD 777

Ich weiß nicht, was ich jetzt tun soll. Ich bin fertig mit Ideen. Ich möchte wirklich, dass diese mod_pagespeed-Funktionen mit unserer Website funktionieren. Wir haben 40 Anfragen von CSS und JS, die von Plugins kommen, die wir nicht verwalten können.

Was empfehlen Sie mir zu tun?

Antwort

5

Es scheint einige Probleme zu geben, die verhindern, dass mod_pagespeed Ressourcen auf Ihrer Site kombiniert. Zuallererst haben viele Ihrer CSS-Dateien id Attribute, die verhindern, dass der combine_css Filter funktioniert. Im Allgemeinen erwartet HTML, dass Elemente ein einziges id-Attribut haben, und es ist nicht klar, was das sein soll, wenn diese CSS-Dateien kombiniert werden.

Das erklärt nicht, warum mod_pagespeed anscheinend keine CSS- oder JS-Ressourcen auf Ihrer Seite umschreibt. mod_pagespeed ist in der Lage, den HTML-Code neu zu schreiben, zum Beispiel www.oktoberfest.it/?ModPagespeedFilters=collapse_whitespace kann Whitespace von der Seite entfernen. Das Problem ist wahrscheinlich, dass mod_pagespeed diese Ressourcen nicht intern abrufen kann. Dies kann aus einer Reihe von Gründen geschehen, aber suchen Sie in Ihrem Apache error_log nach Nachrichten, die sich auf SERF beziehen.

Die beste Lösung für Fetch-bezogene Fehler ist die Verwendung der ModPagespeedLoadFromFile Direktive, wenn Ihre Umgebung dies erlaubt. Werfen Sie auch einen Blick auf this FAQ entry, die das Problem erklärt. Sie können auch versuchen, auf beta release 1.4.26.1 oder höher zu aktualisieren, das eine Problemumgehung für allgemeine Loopback-Abruffehler enthält.

17

Für CSS Kombinieren

Wie Sie Wordpress verwenden, müssen Sie in function.php von Wordpress eine Funktion hinzuzufügen.

function remove_style_id($link) { 
     return preg_replace("/id='.*-css'/", "", $link); 
} 
add_filter('style_loader_tag', 'remove_style_id'); 

Wordpress schreibt ID="" Tags in den CSS-Link, wie Page Speed ​​nicht dargestellt wird. Also wird es ignoriert werden.

ABER Es "könnte" Probleme mit einem Plugin verursachen, wenn ein Javascript die ID aufruft, aber niemand wird es so machen. So wirst du in Sicherheit sein.

+3

streng über Wordpress, kann ich bestätigen, dies ist eine effektive Lösung . – vulgarbulgar

0

Sie können IDs für css-Kombination ab Version 1.12.34.1 zulassen, sehen Sie sich die documentation an.

Als Wordpress -css zu jeder ID fügt, können Sie einfach hinzufügen:

Apache:

ModPagespeedPermitIdsForCssCombining *-css 

Nginx:

pagespeed PermitIdsForCssCombining *-css;