环境:
- Hugo v0.154.3 extended
- 部署平台:腾讯 EdgeOne Pages
- 源码托管:CNB (cnb.cool)
现象:
在 Hugo 模板 layouts/partials/footer.html 中内联了一个 CNB的SVG 图标:
<a href="https://www.cnb.cool/" title="CNB">
<svg class="cnb-icon" viewBox="0 0 320 320" fill="none" xmlns="http://www.w3.org/2000/svg" ...>
<path d="..." fill="currentColor"/>
...
</svg>
</a>问题:
- 本地执行 hugo --gc 构建后,public/index.html 中 SVG 完整存在
- 在 CNB 构建容器中执行 hugo --gc 构建后,public/index.html 中 SVG 完整存在
- 部署到 EdgeOne Pages 后,线上页面的 HTML 源码中 整个 SVG 元素消失,是完全消失。
已排除的原因:
1. 不是 Hugo minify 问题 — 已尝试去掉 --minify 参数,问题依旧
2. 不是 Hugo 配置问题 — disableXML = true 已设置,无效
3. 不是 Hugo 版本问题 — 本地与 CNB 容器使用相同版本 v0.154.3,构建产物均正常
4. 不是模板问题 — 构建产物中 SVG 完整存在,包含所有 <path> 子元素
5. 不是CSS的问题 — 本地运行是正常显示
结论:
问题发生在 EdgeOne Pages 部署环节。部署过程中 HTML 被额外处理,内联 SVG 元素被移除或过滤。
请求:
请排查 EdgeOne Pages 部署流程中是否有
1. HTML 压缩/优化逻辑移除了 SVG
2. 安全策略过滤了内联 SVG
3. 相关配置可关闭此行为
相似问题