mod_pagespeed no combinará CSS y JS

3 minutos de lectura

avatar de usuario
Dman88

Instalé mod_pagespeed en nuestro servidor pero no combinará mi CSS y JS en nuestro sitio web oktoberfest.it. Obviamente he activado combine_css, combine_javascript y PassThrough en filtros en el archivo pagespeed.conf.

También he leído que mod_pagespeed no puede combinar archivos CSS que contienen directivas CSS3, pero en mi archivo de registro de Apache, después de habilitar la depuración de LevelLog, por supuesto, no hay ningún error o información sobre fallas en la combinación. Ni CSS ni JS.

He intentado:

  1. Leer agregar CoreFilters
  2. reiniciar apache
  3. Eliminar caché mod_pagespeed con toque /var/mod_pagespeed/cache/cache.flush
  4. Desactive todos los filtros excepto combine_css y combine_javascript
  5. He comprobado que las carpetas indicadas en el archivo .config son CHMOD 777

No sé qué hacer ahora. He terminado con las ideas. Realmente quiero que estas funciones de mod_pagespeed funcionen con nuestro sitio web, tenemos 40 solicitudes de CSS y JS que provienen de complementos que no podemos administrar.

¿Que me sugieres que haga?

Para combinar CSS

Como está usando WordPress, necesita agregar una Función en
function.php de WordPress.

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

WordPress escribe ID="" Etiquetas en el enlace css que no le gusta a pagespeed. Así que será ignorado.

PERO “Podría” causar problemas con un complemento si un Javascript llama a la ID, pero nadie lo hará de esa manera. Así estarás a salvo.

  • estrictamente relacionado con wordpress, puedo confirmar que esta es una solución efectiva.

    – vulgarbúlgaro

    16/04/2015 a las 17:29

  • Verifique esto para obtener una solución más limpia stackoverflow.com/a/48356230/3839641

    – Sarasranglt

    1 de septiembre de 2020 a las 12:57

Puede permitir ID para la combinación de css a partir de la versión 1.12.34.1, eche un vistazo a la documentación.

como agrega wordpress -css a cualquier ID, simplemente puede agregar:

Apache:

ModPagespeedPermitIdsForCssCombining *-css

Nginx:

pagespeed PermitIdsForCssCombining *-css;

Parece que hay algunos problemas que impiden que mod_pagespeed combine recursos en su sitio. En primer lugar, muchos de sus archivos CSS tienen id atributos, lo que impedirá la combine_css filtro de funcionamiento. HTML generalmente espera que los elementos tengan un solo id atributo, y no está claro qué debería ser si se combinan esos archivos CSS.

Sin embargo, eso no explica por qué mod_pagespeed no parece estar reescribiendo ningún recurso CSS o JS en su página. mod_pagespeed puede reescribir el HTML, por ejemplo, www.oktoberfest.it/?ModPagespeedFilters=collapse_whitespace puede eliminar los espacios en blanco de la página. Es probable que el problema sea que mod_pagespeed no pueda obtener estos recursos internamente. Esto puede suceder por varias razones, pero mire en su apache error_log para mensajes relacionados con SERF.

La mejor solución para las fallas relacionadas con la recuperación es usar el ModPagespeedLoadFromFile directiva si su entorno lo permite. También echa un vistazo a esta entrada de preguntas frecuentes, lo que explica el problema. También puede intentar actualizar a versión beta 1.4.26.1 o posterior, que incluye una solución alternativa para errores comunes de recuperación de loopback.

¿Ha sido útil esta solución?