如何解决如何用 HTMLRewriter 替换 jsp 标签
我对 Cloudflare 的 HTMLRewriter 功能有点陌生。
我正在尝试使用 HTMLRewriter 用一些 html 替换 jsp 标记。
更准确地说,<%= "${header}" %>
。有没有办法做到这一点?
我设法替换了标题标记 <header>
,但没有替换 jsp 或其他字符串。
解决方法
不幸的是,此 JSP 标记不是有效的 HTML,因此不会被 HTMLRewriter
识别为任何类型的 HTML 元素。您的选择可能是:
- 将整个 HTML 读入一个字符串并进行字符串替换。这将使用大量内存并会损害您的 TTFB,因为在工作人员收到整个文件并完成替换之前,客户端无法接收任何字节。
- 使用流 API 一次读取一个块并执行替换。替换完成后,您可以使用
pipeTo()
有效地流式传输文件的其余部分。这种方法的问题在于,使匹配逻辑正确可能非常复杂。您要查找的字符串最终可能会拆分到流的多个块中,因此处理它所需的状态机很棘手。 - 更改您的来源以发送有效的 HTML,例如
<header></header>
而不是<%= "${header}" %>
。根据您的问题,我猜这是不可能的,否则您已经完成了。但是,如果您能找到某种方法,这确实是最干净的选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。