#javascript #html #cloudflare-workers
Вопрос:
Я пытаюсь использовать HTMLRewriter для предварительной загрузки <link>
веб-страниц на моем сайте, но ничего не происходит.
Код, который я использую, это:
addEventListener("fetch", (event) => {
event.respondWith(
handleRequest(event.request).catch(
(err) => new Response(err.stack, { status: 500 })
)
);
});
class ElementHandler {
element(element) {
element.append(`<link rel="preload" href="path/to/image.jpg" as="image">`, {html: true});
}
}
async function handleRequest(req) {
const res = await fetch(req)
return new HTMLRewriter().on("head", new ElementHandler()).transform(res)
}
Я поговорил с кем-то из Cloudflare, и они не увидели в этом ничего плохого, но это все еще не работает. <link
> там нет.
Ответ №1:
Убедитесь, что выбранный вами маршрут настроен в разделе «Маршруты». Раздел маршруты можно найти в разделе ваш домен > Рабочие >> Добавить маршрут
Я хотел бы опубликовать изображение, но вот руководство, которое я написал, используя ваш фрагмент кода для введения стиля в приложение под названием FoundryVTT: https://dev.to/mbround18/how-to-hijack-your-head-38dn
Комментарии:
1. Не говорите «Спасибо» в ответ, подождите, пока вы не заработаете достаточно репутации, чтобы проголосовать за ответ. Это был бы лучший способ сказать Спасибо.
2. Спасибо @Michael, это было действительно полезно. Любопытно, что он работает не на моем сайте, а на игровой площадке Cloudflare.
3. Я был слишком нетерпелив, сейчас это работает лучше всего. Отличная работа!