Предварительная загрузка cdn кэшированных файлов - PullRequest
1 голос
/ 19 сентября 2019

У меня есть файлы, которые кешируются в некотором cdn.

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

<script src="/js/cool.js"></script>

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

<script src="/js/cool.js.pagespeed.ce.l2D9mD1nmX.js"></script>

.pagespeed.ce.l2D9mD1nmX.js означает, что он кэшировался

теперь мне стало интересно, рекомендуется ли это или рекомендуется предварительно загружать файл, который уже кэшируется в cdn?

потому что я делаю

<link rel="preload" type="application/javascript" href="/js/cool.js" as="script">

в моем <head>, и это даст мне предупреждение о:

Ресурс (файл предварительной загрузки) был предварительно загружен с использованием предварительной загрузки ссылки, но неиспользуется в течение нескольких секунд после события загрузки окна.Пожалуйста, убедитесь, что оно имеет соответствующее значение as и преднамеренно предварительно загружено.

, поскольку технически /js/cool.js больше не существует в dom

1 Ответ

0 голосов
/ 19 сентября 2019

Используйте плагин предварительной загрузки в вашем модуле.

Q.Желательно ли или предварительно загружать файл, который уже кэшируется в cdn?

A.Да, если предположить, что ваш cool.js действительно должен быть предварительно загружен.


Теперь предупреждение действительно ожидается.Смотрите, cool.js.pagespeed.ce.l2D9mD1nmX.js и cool.js - это два разных файла на сервере.Ваш файл cool.js.pagespeed.ce.l2D9mD1nmX.js на самом деле является клоном code.js, созданным вашим модулем-упаковщиком по определенным причинам .То, что вы делаете, - это предварительная загрузка cool.js, код которой никогда не выполняется в рабочем состоянии, и поэтому предупреждение - ... предварительно загружается с использованием предварительной загрузки ссылки, но не используется в течение нескольких секунд после события загрузки окна .Но на самом деле вам нужно предварительно загрузить cool.js.pagespeed.ce.l2D9mD1nmX.js.Предполагая, что вы используете webpack в качестве модуля-компоновщика, вам нужен плагин под названием preload-webpack-plugin , чтобы добиться того же.

...