2013-09-11 3 views
2

У меня около 14 листов css и около 12 файлов js, которые необходимо загрузить с помощью моего приложения.Pagespeed + nginx - not minifying css и javascript

Я использую google pagespeed.

Вместо объединения 14 листов в 1 лист его объединения их в 3.

Даже яваскрипта комбинации не работает очень хорошо, но это в некоторой степени. Никакой минификации там тоже.

Я пробовал читать документы, но не могу найти много подсказок.

Кроме того, это не делает никаких изменений. Это работает, но только до некоторой степени

Вот весь код, который должен с этим делать:

pagespeed on; 

    # Needs to exist and be writable by nginx. 
    pagespeed FileCachePath /var/ngx_pagespeed_cache; 
    pagespeed RewriteLevel PassThrough; 
    pagespeed EnableFilters  add_head,combine_css,convert_meta_tags,convert_png_to_jpeg,extend_cache,fallback_rewrite_css_urls,flatten_css_imports,inline_css,inline_import_to_link,inline_javascript,rewrite_css,rewrite_images,rewrite_javascript,rewrite_style_attributes_with_url; 
    pagespeed EnableFilters combine_javascript,remove_comments,collapse_whitespace; 

    # 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_message { allow 127.0.0.1; deny all; } 

Какой фильтр я пропустил?

+0

Если вы хотите помочь отладить это, напишите нам URL-адрес вашего сайта в списке обсуждений https://groups.google.com/forum/#!forum/ngx-pagespeed-discuss. Нам нужно больше информации, чтобы понять, почему это не работает. – sligocki

+0

Хорошо сделаю. Спасибо –

+0

Вы используете ssl и/или spdy? –

ответ

2

URL-адреса, которые могут генерироваться ngx_pagespeed, ограничены настройкой, называемой «MaxSegmentLength» [1]. Для этого есть веские причины. Это означает, что количество файлов, которые могут быть объединены в один URL, также ограничено. Это может быть причиной того, что 14 файлов css будут объединены в 3 URL-адреса, а не 1.

Пропуская миниатюра javascript может быть из-за этих вещей: - JavaScript был диагностирован как интроспективный [2]. - javascript содержит ошибки разбора.

Возможно, стоит взглянуть на error.log nginx и проверить сообщения загрузки конфигурации и вывод ngx_pagespeed на первый запрос там, чтобы выяснить, что не так.

[1] См. «Ограничение максимальной длины сгенерированного URL-сегмента» на странице https://developers.google.com/speed/pagespeed/module/restricting_urls [2] См. «Ограничение PageSpeed ​​от переписывания URL-адресов интроспективного JavaScript» по указанному выше адресу.

+0

Рекомендуем ли вам сократить имя файла js? pagespeed разбивает мои 7 js на 3 файла. – DjangoPy

+0

Это зависит от того, что PageSpeed ​​разбивает файлы на три комбинированных файла. Вы можете добавить? PageSpeedFilters = + debug к querystring, а затем PageSpeed ​​может писать html-комментарии о том, почему это может быть их разделение. Возможно, содержимое объединенных файлов будет слишком большим, если оно объединит их в один файл, и в этом случае лучшим вариантом будет наличие нескольких файлов. – oschaaf