我正在使用Mod_Pagespeedfilter的Nginx和组合,并缩小javascipt或CSS不工作。 我检查了一切,找不到原因:
1)错误日志中没有错误
2)Pagespeed工作cuz它能够collapse_whitespace , remove_comments等。
3)caching文件夹的权限似乎很好,与www-data
4)试图添加Domain和LoadFromFile ,看看是否LoadFromFile ,但没有:
pagespeed Domain http://example.com; pagespeed LoadFromFile "http://example.com/assets/" "/var/www/example/public_html/assets";
5)我有像这样在我的nginx设置身份validation锁(见下文)。 当我禁用authentication锁,缩小似乎有时工作。 我没有得到一个稳定的结果来得出这个结论:
location / { auth_basic "Login"; auth_basic_user_file /etc/nginx/login_pass; }
所以我的问题是,如果启用nginx身份validation,将失败pagespeed缩小和组合JS或CSS? 还是因为别的原因可能会失败? 我不知道在哪里看,我很迷茫…
这是我的Pagespeedfilter:
# 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\.([az]\.)?[az]{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;
更新:看来身份validation锁不是停止合并和最小化pagespeed。 我想如果任何包含的JS导致Pagespeed不会缩小所有的文件,如果可能的话。 大约有6个CSS和6个JS文件可以缩小和合并。 仍然不知道为什么,看着它。
解决scheme:结果Pagespeed无法find我的静态资产,因此它不能够缩小和组合的CSS。 映射静态资产的工作。 在下面添加了我的答案。
find了! 事实certificate,pagespeed无法find我的CSS和JS文件,因此他们没有被合并,也没有缩小。 这就是为什么只有collapse_whitespace和remove_comments工作。 我需要映射我的静态资产的位置,然后pagespeed能够拿起它。 所以我把它添加到了我的pagespeedconfiguration文件中,之后pagespeed像它应该工作,并开始缩小和组合的CSS和JS文件没有问题:
pagespeed LoadFromFile "http://example.com/" "/var/www/example/html/";
阅读这个链接也帮助我,虽然这个链接是为SSL和我wasnt: https : //www.erianna.com/how-to-setup-nginx-pagespeed-with-ssl
有关此处的更多信息: https : //developers.google.com/speed/pagespeed/module/domains#ModPagespeedLoadFromFile