You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中用href关联HTML构建产物?

解决Jenkins构建产物中HTML相对链接被拦截的问题

问题根源

Jenkins默认会对构建产物中的HTML文件应用内容安全策略(CSP),限制本地文件链接、跨源资源的加载,导致相对链接触发浏览器拦截,出现about:blank#blocked提示。

无插件权限下的可行方案

1. 使用Jenkins artifact路径的绝对路径链接

直接在RegressionTestRun.html中写入基于Jenkins artifact目录的绝对路径链接,格式如下:

<a href="/job/stmt-automation-regressiontest-VM38-AMA/lastSuccessfulBuild/artifact/testrun_xxx.html">测试报告xxx</a>

如果需要指向特定构建号,替换lastSuccessfulBuild为对应构建号即可:

<a href="/job/stmt-automation-regressiontest-VM38-AMA/123/artifact/testrun_xxx.html">测试报告xxx</a>

这种方式遵循Jenkins的路径规则,不会触发CSP拦截。

2. 在报告生成脚本中动态拼接完整URL

如果回归测试报告是通过脚本生成的,可利用Jenkins环境变量BUILD_NUMBER动态拼接完整的artifact URL:

# Shell脚本示例:生成带完整路径的链接
BUILD_BASE_URL="https://jenkins.xxx.net/job/stmt-automation-regressiontest-VM38-AMA/${BUILD_NUMBER}/artifact/"
echo "<a href=\"${BUILD_BASE_URL}testrun_001.html\">Test Run 001</a>" >> RegressionTestRun.html

生成的完整绝对URL可被浏览器正常加载,不受CSP限制。

3. 利用内置HTML Publisher插件(若已安装)

部分Jenkins实例默认预装了HTML Publisher插件,若你的环境已安装,可在构建后步骤配置:

  • 选择「Publish HTML reports」
  • 设置「HTML directory to archive」为当前artifact目录(如.)
  • 设置「Index page」为RegressionTestRun.html
  • 勾选「Allow script access」(若有此选项)
    该方式会绕过CSP限制,让相对链接正常工作。

注意事项

  • 禁止使用file://协议的本地文件链接,Jenkins CSP会直接拦截这类链接。
  • 确保所有子HTML文件都存放在Jenkins的artifact目录下,路径匹配准确。

内容的提问来源于stack exchange,提问作者user3711142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:52:13