Сервер HTTP / 2 дважды загружал актив

Я пытаюсь использовать HTTP / 2 server push, работающий от Cloudflare. Я пытаюсь подтолкнуть два актива, используя следующий HTTP-заголовок ...

Link: </img/whysoslow-hero.jpg>; rel=preload; as=image, </lib/bootstrap.min.css>; rel=preload; as=style

Изображение является справочным в качестве фонового изображения в таблице стилей, и оно загружается, а затем используется правильно (загружается один раз).

Однако я ссылаюсь на таблицу стилей в HTML моей страницы вот так ...

<link rel="stylesheet" href="/lib/bootstrap.min.css">

... и он отправляется, но затем также загружается (загружается дважды).

Мой веб-сайт ... https://whysoslow.co.uk

Вот снимок экрана вкладки «Сеть» в Chrome, показывающий, что ресурсы отправлены, но затем таблица стилей загружается снова ...

Скриншот вкладки

Может ли кто-нибудь объяснить мне, почему это происходит и как я могу это решить?

РЕДАКТИРОВАТЬ:

С тех пор я заметил, что консоль говорит ...

Предварительная загрузка для https://whysoslow.co.uk/lib/bootstrap.min.css 'найден, но не используется из-за несоответствия целостности.

Итак, проверка SRI терпит неудачу. Но я не понимаю, почему, он получает один и тот же файл, поэтому он должен быть идентичным. Почему бы им не быть идентичными?


person Rik Lewis    schedule 24.05.2019    source источник
comment
Почему вы используете SRI для ресурсов, принадлежащих вашему домену? Обычно это используется для активов, не находящихся под вашим контролем в другом домене (который вы затем не можете отправить).   -  person Barry Pollard    schedule 24.05.2019
comment
Я использую Gulp - ресурсы были изначально загружены из CDN, но перемещены на локальный хостинг, поскольку я улучшал производительность. Я удалил SRI сейчас, потому что, как вы говорите, сейчас в этом нет необходимости.   -  person Rik Lewis    schedule 25.05.2019


Ответы (1)


Теперь, когда я понял это, мне также удалось найти ответ ...

Как предварительно загрузить скрипт с использованием целостности и перекрестного происхождения

Краткий ответ: вы не можете предварительно загрузить и использовать SRI, он пока не поддерживается.

person Rik Lewis    schedule 24.05.2019