如何用 HTMLRewriter 替换 jsp 标签

How to replace jsp tag with HTMLRewriter

我对 Cloudflare 的 HTMLRewriter 功能有点陌生。

我正在尝试使用 HTMLRewriter 将 jsp 标签替换为一些 html。

更准确地说,<%= "${header}" %>。有什么办法可以做到这一点吗?

我设法替换了 header 标签 <header>,但没有替换 jsp 或其他字符串。

不幸的是,此 JSP 标签无效 HTML,因此 HTMLRewriter 不会将其识别为任何类型的 HTML 元素。您的选择可能是:

  1. 将整个 HTML 读入字符串并进行字符串替换。这将使用大量内存并会损害您的 TTFB,因为在工作人员收到整个文件并完成替换之前,客户端无法接收任何字节。
  2. 使用流API一次读取一个块并执行替换。替换完成后,您可以使用 pipeTo() 有效地流式传输文件的其余部分。这种方法的问题是要获得正确的匹配逻辑可能会非常复杂。您要查找的字符串最终可能会拆分为流的多个块,因此处理该问题所需的状态机很棘手。
  3. 更改您的来源以发送有效的 HTML,例如 <header></header> 而不是 <%= "${header}" %>。根据您的问题,我猜这是不可能的,或者您已经完成了。但是,如果您能找到某种方法,这确实是最干净的选择。