Help us learn about your current experience with the documentation. Take the survey.
Markdown 缓存
- 版本:Free, Premium, Ultimate
- 产品:GitLab Self-Managed
出于性能原因,GitLab 会缓存 Markdown 文本的 HTML 版本,这些字段包括:
- 评论。
- Issue 描述。
- Merge request 描述。
当 external_url 配置选项等设置被更改时,这些缓存版本可能会过时。缓存文本中的链接届时仍会指向旧的 URL。
使缓存失效
您可以通过 API 或 Rails console 使 Markdown 缓存失效。
使用 API
前提条件:
- 您必须拥有管理员权限。
要通过 API 使现有缓存失效:
-
通过发送 PUT 请求来增加应用设置中的
local_markdown_version值:curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \ --url "https://gitlab.example.com/api/v4/application/settings?local_markdown_version=<increased_number>"
有关此 API 端点的更多信息,请参阅 更新应用设置。
使用 Rails console
前提条件:
- 您必须拥有 Rails console 的访问权限。
针对一个群组
要使某个群组的缓存失效:
-
启动 Rails console:
sudo gitlab-rails console -
查找要更新的群组:
group = Group.find(<group_id>) -
使该群组中所有项目的缓存失效:
group.all_projects.each_slice(10) do |projects| projects.each do |project| # 使 issues 缓存失效 project.issues.update_all( description_html: nil, title_html: nil ) # 使 merge requests 缓存失效 project.merge_requests.update_all( description_html: nil, title_html: nil ) # 使 notes/comments 缓存失效 project.notes.update_all(note_html: nil) end # 每更新 10 个项目后暂停一秒 sleep 1 end
针对一个项目
要使单个项目的缓存失效:
-
启动 Rails console:
sudo gitlab-rails console -
查找要更新的项目:
project = Project.find(<project_id>) -
使 issues 缓存失效:
project.issues.update_all( description_html: nil, title_html: nil ) -
使 merge requests 缓存失效:
project.merge_requests.update_all( description_html: nil, title_html: nil ) -
使 notes 和 comments 缓存失效:
project.notes.update_all(note_html: nil)