Реализация метода push http2 на apache php - PullRequest
1 голос
/ 11 июля 2019

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

Я удалил common.css из заголовочного файла моего сайта.и добавил эти строки в файл .htaccess.

<IfModule http2_module>
    #Check if there's a cookie saying the css has already been loaded: 
    SetEnvIf Cookie "cssloaded=1" cssloaded
    #If no cookie, and it's an html file, then push the css file 
    #and set a session level cookie so next time it won't be pushed: 
    <filesMatch "\.([pP][hH][pP]?)">
            Header add Link "</assets/css/common.css>;rel=preload;as=style" env=!cssloaded
            Header add Set-Cookie "cssloaded=1; Path=/; Secure; HttpOnly" env=!cssloaded
    </filesMatch>
</IfModule>

, но Мой сайт вообще не загружает common.css.это ломаетсяМой веб-сайт находится за сервером Apache, и веб-сайт полностью построен на codeIgniter.

Я тоже добавил их в свой common_head.php файл

<?php
        header: header('Link: </assets/css/jquery-ui.css>; rel=preload; as=style,</assets/css/jquery.mCustomScrollbar.min.css>; rel=preload; as=style,</assets/css/slick.min.css>; rel=preload; as=style,</assets/css/slick-theme.min.css>; rel=preload; as=style,</assets/css/bootstrap.min.css>; rel=preload; as=style,</assets/css/common.css>; rel=preload; as=style,,</assets/css/jplayer.blue.monday.min.css>; rel=preload; as=style');
?>

Теперь я могу видеть все файлы CSS в проверкеэлемент, а также может видеть инициал Push / другие, но это не применяется на странице.Страница сломана.Сервер Apache: 2.4.6

Пожалуйста, дайте мне знать, где я делаю не так?

1 Ответ

0 голосов
/ 11 июля 2019

Этот код выглядит знакомым!Рад, что мой пост в блоге оказался полезным: -)

Я удалил файл common.css из заголовочного файла моего сайта.и добавил эти строки в файл .htaccess.

Вот где вы ошиблись.На него нужно сослаться как обычно в HEAD, а также нажать на него.

Когда браузер увидит ссылку common.css, он пойдет, чтобы извлечь ее и увидеть, что она уже была отправлена ​​и просто использует помещенный ресурс.

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

Примечание. HTTP / 2 Push сложен, и есть много таких вещей, которые могут ошибиться.См. Этот пост для получения дополнительной информации: https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/. Многие говорят, что это не стоит того, чтобы его использовать, и что выгоды в любом случае сомнительны, так как вы можете легко перетаскивать и заставлять страницу загружаться медленнее, а не быстрее.

...