Skip to content

[Bug] 项目 README 中引用的仓库内图片无法正常展示 #957

Description

@TyreeZhao

问题描述

在项目「信息」页渲染仓库 README 时,README 中通过相对路径引用的仓库内图片无法正常展示。

Markdown 图片会显示为破图;README 中的原生 HTML(例如 <details><img ...></details>)还会被当作普通文本展示。该问题会影响包含界面截图、架构图或使用说明图片的项目 README。

复现步骤

  1. 添加一个 README 中包含仓库内相对图片路径的项目。
  2. README 使用以下任一写法:
    ![示例](./docs/images/example.png)
    或 <img src="./docs/images/example.png">
  3. 进入该项目的「信息」页并查看 README。

实际结果

  • Markdown 相对图片请求落到当前前端页面路径,无法读取私有仓库中的文件,图片显示为破图。
  • 原生 HTML 图片语法未被 README 渲染器处理,相关标签显示为文本。

预期结果

  • README 中的 HTTP(S) 外链图片保持原地址。
  • 仓库内相对图片应基于 README 文件所在目录解析,并从当前项目与所选分支读取。
  • 图片响应应返回真实媒体类型,避免扩展名与内容类型不一致时出现乱码。
  • 原生 HTML <img> 在安全净化后可以正常展示。
  • 非法协议、越界路径、非图片内容及超大文件应被拒绝。

复现环境

  • MonkeyCode: main@acd16884
  • 浏览器: Chrome
  • 测试仓库 README:包含两张 Markdown 相对图片和一张 <details> 内的 HTML 图片
  • 测试样本扩展名为 .png,实际文件内容为 JPEG,可同时验证内容嗅探

截图证据

修复前:两张 Markdown 图片均显示为破图,HTML 标签显示为文本:

Image

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions