Внедрить HTML с помощью Cloudflare worker

#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. Я был слишком нетерпелив, сейчас это работает лучше всего. Отличная работа!