Nginx: я хочу http2_push все файлы js и css в каталоге, как я могу это сделать? - PullRequest
0 голосов
/ 16 февраля 2019

файлы создаются и удаляются динамически, а имена меняются со временем благодаря процессу минификации каталогов css и js CMS. Как я могу сделать, чтобы все js и css в каталоге были отправлены Nginx?

Я пытаюсь сделать

index index.php;

http2_push 'path/to/files'   *min.css; #not working
http2_push 'path/to/files'    *min.js;  #not working
http2_push 'path/to/file' favicon.ico; #works fine

прости меня, язык я не английский родной

спасибо за потраченное время

Обновление: После поиска скуки я решил пойти по длинному пути, я изменилбазовый плагин для создания пользовательского, который создает файлы с определенным именем каждый раз вместо файла с динамическим именем. Я удалил все текстовые строки, обозначающие информацию, удалив $ ctime и $ hash из генерации статического файла.

index index.php;

http2_push 'path/to/files' static-name.min.css; #working
http2_push 'path/to/files' static-name.min.js;  #working

http2_push 'path / to / file /' * .min.js;# все еще не работает, но это не имеет значения, спасибо за ответы.

1 Ответ

0 голосов
/ 16 февраля 2019

Получите PHP, чтобы сделать это за вас.

Прежде всего настройте следующую конфигурацию в Nginx:

http2_push_preload on

Затем получите PHP для отправки заголовков HTTP с предварительной загрузкой в ​​ответ наindex.php:

header('Link: </styles/file.css>;rel=preload;as=style>');

Затем Nginx будет использовать заголовки HTTP предварительной загрузки в качестве инструкций для отправки push-запросов HTTP / 2.

Предполагается, что ваш PHP-код либо знает файлы, которые вы хотите отправитьили может узнать.

Использование подсказок предварительной загрузки также означает, что запросы HTTP / 1.1 также получат подсказки предварительной загрузки, которые сообщат браузеру запрашивать эти ASAP еще до анализа возвращенного HTML.

ОсновнойНедостатки этих опций в том, что вы 1) не можете сделать это для статических ресурсов (например, если используете index.html вместо index.php), а также 2) что он не начнет выдавливать, пока не будет готов ответ index.php.Для последнего HTTP Status 103 Ранние подсказки допускает быстрый ответ, но не может найти ничего, что могло бы предположить, что Nginx пока поддерживает этот относительно новый заголовок HTTP.

...