Markdown 캐시
Offering: GitLab Self-Managed
성능상의 이유로 GitLab은 다음과 같은 필드에서 Markdown 텍스트의 HTML 버전을 캐싱합니다: 이러한 캐시된 버전은 external_url 구성 옵션이 변경될 때와 같이 오래될 수 있습니다. API 또는 Rails 콘솔을 사용하여 Markdown 캐시를 무효화할 수 있습니다.
성능상의 이유로 GitLab은 다음과 같은 필드에서 Markdown 텍스트의 HTML 버전을 캐싱합니다:
- 댓글.
- 이슈 설명.
- 머지 리퀘스트 설명.
이러한 캐시된 버전은 external_url 구성 옵션이 변경될 때와 같이 오래될 수 있습니다. 캐시된 텍스트의 링크는 여전히 이전 URL을 참조합니다.
캐시 무효화#
API 또는 Rails 콘솔을 사용하여 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 콘솔 사용#
전제 조건:
- Rails 콘솔 접근 권한이 있어야 합니다.
그룹의 경우#
그룹의 캐시를 무효화하려면:
-
Rails 콘솔을 시작합니다:
sudo gitlab-rails console -
업데이트할 그룹을 찾습니다:
group = Group.find(<group_id>) -
그룹의 모든 프로젝트에 대한 캐시를 무효화합니다:
group.all_projects.each_slice(10) do |projects| projects.each do |project| # Invalidate issues project.issues.update_all( description_html: nil, title_html: nil ) # Invalidate merge requests project.merge_requests.update_all( description_html: nil, title_html: nil ) # Invalidate notes/comments project.notes.update_all(note_html: nil) end # Pause for one second after updating 10 projects sleep 1 end
프로젝트의 경우#
단일 프로젝트의 캐시를 무효화하려면:
-
Rails 콘솔을 시작합니다:
sudo gitlab-rails console -
업데이트할 프로젝트를 찾습니다:
project = Project.find(<project_id>) -
이슈를 무효화합니다:
project.issues.update_all( description_html: nil, title_html: nil ) -
머지 리퀘스트을 무효화합니다:
project.merge_requests.update_all( description_html: nil, title_html: nil ) -
노트와 댓글을 무효화합니다:
project.notes.update_all(note_html: nil)
