Я использую фильтры Mod_Pagespeed для Nginx, и объединение и минимизация javascipt или css не работают. Все проверил и не нашел причину:
1) В журнале ошибок нет ошибок
2) Pagespeed работает, потому что может collapse_whitespace
, remove_comments
и т.д..
3) Разрешение папки кеша кажется приемлемым с chown
к www-data
4) Пробовал добавлять Domain
и LoadFromFile
чтобы увидеть, имеет ли это значение, но нет:
pagespeed Domain http://example.com;
pagespeed LoadFromFile "http://example.com/assets/"
"/var/www/example/public_html/assets";
5) В моем nginx установлена блокировка аутентификации (см. Ниже). Когда я отключаю auth-lock, иногда кажется, что работает minify. Я не получил устойчивых результатов, чтобы прийти к такому выводу:
location / {
auth_basic "Login";
auth_basic_user_file /etc/nginx/login_pass;
}
Итак, мой вопрос: если включена аутентификация nginx, не приведет ли это к сбою страниц при минимизации и объединении JS или CSS? Или это могло быть у меня из-за чего-то другого? Я не знаю, куда смотреть дальше, и я так потерялся ...
Это мои фильтры Pagespeed:
# PageSpeed
# Enable ngx_pagespeed
pagespeed on;
pagespeed FileCachePath /usr/share/nginx/pagespeed;
# Ensure requests for pagespeed optimized resources go to the pagespeed handler
# and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
location /ngx_pagespeed_global_statistics { allow 127.0.0.1; deny all; }
location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
pagespeed EnableFilters collapse_whitespace;
pagespeed EnableFilters remove_comments;
# Defer and minify Javascript
# pagespeed EnableFilters defer_javascript;
pagespeed EnableFilters rewrite_javascript;
pagespeed EnableFilters combine_javascript;
pagespeed EnableFilters canonicalize_javascript_libraries;
# Inline and minimize css
pagespeed EnableFilters rewrite_css;
pagespeed EnableFilters fallback_rewrite_css_urls;
pagespeed EnableFilters combine_css;
ОБНОВИТЬ: Похоже, что аутентификационная блокировка - это не то, что останавливает скорость страницы от объединения и минимизации. Я думаю, если какой-либо из включенных JS заставляет Pagespeed не минимизировать все файлы, если это возможно. Есть около 6 файлов CSS и 6 JS, которые нужно минимизировать и объединить. Все еще не уверен, почему, и изучаю это.
РЕШЕНИЕ: Оказывается, Pagespeed не смог найти мои статические ресурсы и, следовательно, не смог минимизировать и объединить CSS. Сопоставление статических активов сработало. Добавили мой ответ ниже.
Нашел! Как оказалось, Pagespeed не смог найти мои файлы css и js, поэтому они не были объединены и уменьшены. Вот почему только collapse_whitespace
и remove_comments
работал. Мне нужно отобразить местоположение моих статических ресурсов, а затем pagepeed смог его подобрать. Итак, я добавил это в свою конфигурацию Pagespeed, и после этого pagespeed заработал, как должен, и начал без проблем минимизировать и объединять файлы css и js:
pagespeed LoadFromFile "http://example.com/"
"/var/www/example/html/";
Чтение этой ссылки также помогло мне, хотя эта ссылка была для ssl, а моя - нет: https://www.erianna.com/how-to-setup-nginx-pagespeed-with-ssl
Подробнее об этом здесь: https://developers.google.com/speed/pagespeed/module/domains#ModPagespeedLoadFromFile
Можно изучить несколько настроек, которые предотвращают появление этих комбинаций. Первый также ответил оригинальным постером:
pagespeed LoadFromFile remote_address local_address;
Если вы используете CDN (просто убедитесь, что localhost
обслуживает активы):
pagespeed MapOriginDomain http://localhost https://cdn.example.com;
Если вы используете WordPress:
pagespeed PermitIdsForCssCombining *-css;
Хотя это может быть значение по умолчанию, укажите явно:
pagespeed EnableFilters combine_css;
pagespeed EnableFilters combine_javascript;
pagespeed CombineAcrossPaths on;
Для рабочих настроек в настройке с NGINX, WordPress и CloudFlare вы можете проверить эту веб-страницу: https://www.majlovesreg.one/adding-pagespeed-to-a-running-nginx-instance