2013-04-26 20 views
8

Ho installato mod_pagespeed sul nostro server ma non unirà il mio CSS e JS sul nostro sito web oktoberfest.it. Ovviamente ho attivato combine_css, combine_javascript e PassThrough nei filtri nel file pagespeed.conf.mod_pagespeed non combina CSS e JS

Ho anche letto che mod_pagespeed non può combinare file CSS che contengono direttive CSS3, ma nel mio file di log di Apache, dopo aver abilitato il debug di LevelLog, ovviamente, non ci sono errori o infomazioni sugli errori nella combinazione. Né CSS né JS.

Ho cercato di:

  1. readd CoreFilters
  2. Reboot Apache
  3. eliminare la cache mod_pagespeed con touch /var/mod_pagespeed/cache/cache.flush
  4. disattivare tutti i filtri ad eccezione combine_css e combine_javascript
  5. Ho verificato che le cartelle indicate nel file .config siano CHMOD 777

Non so cosa fare ora. Ho finito con le idee. Voglio davvero che le funzionalità mod_pagespeed funzionino con il nostro sito web, abbiamo 40 richieste di CSS e JS che provengono da plugin che non possiamo gestire.

Cosa mi consigliate di fare?

risposta

5

Sembra che ci siano alcuni problemi che impediscono a mod_pagespeed di combinare le risorse sul tuo sito. Prima di tutto, molti dei tuoi file CSS hanno attributi id, che impediscono il funzionamento del filtro combine_css. L'HTML generalmente si aspetta che gli elementi abbiano un singolo attributo id e non è chiaro cosa dovrebbe essere se quei file CSS sono combinati.

Questo non spiega perché mod_pagespeed non sembra riscrivere risorse CSS o JS sulla tua pagina. mod_pagespeed è in grado di riscrivere l'HTML, ad esempio www.oktoberfest.it/?ModPagespeedFilters=collapse_whitespace è in grado di rimuovere spazi bianchi dalla pagina. È probabile che mod_pagespeed non sia in grado di recuperare queste risorse internamente. Questo può accadere per una serie di motivi, ma guarda nel tuo apache error_log per i messaggi relativi a SERF.

La migliore soluzione per errori relativi al recupero è di utilizzare la direttiva ModPagespeedLoadFromFile se il proprio ambiente lo consentirà. Dai anche un'occhiata allo this FAQ entry, che spiega il problema. Puoi anche provare ad aggiornare a beta release 1.4.26.1 o successivo, che include una soluzione alternativa per gli errori di recupero loopback comuni.

17

Per CSS Combina

Come si utilizza Wordpress, è necessario aggiungere una funzione in function.php di Wordpress.

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

Wordpress scrive ID="" Tag sul legame css che Page Speed ​​Indifferente come. Quindi sarà ignorato.

MA "Potrebbe" causare problemi con un plug-in se un javascript chiama l'ID, ma regolarmente nessuno lo farà in questo modo. Quindi sarai al sicuro.

+3

strettamente riguardante wordpress, posso confermare questa è una soluzione efficace . – vulgarbulgar

0

È possibile consentire gli ID per la combinazione css dalla versione 1.12.34.1, dare un'occhiata allo documentation.

Come wordpress aggiunge -css a qualsiasi ID, si può semplicemente aggiungere:

Apache:

ModPagespeedPermitIdsForCssCombining *-css 

Nginx:

pagespeed PermitIdsForCssCombining *-css;