GitLab의 URL
GitLab의 URL에 대해 설명합니다.
개요 # GitLab은 URL 생성과 해석 방식에 영향을 주는 여러 배포 구성을 지원합니다. 하드코딩된 URL 이나 절대 URL을 사용하면 다음과 같은 상황에서 기능이 동작하지 않을 수 있습니다. 상대 URL 설치 - 경로 접두사를 사용하는 GitLab 배포입니다. 예를 들면 https://example.com/gitlab/ 입니다. Geo 배포 - URL 이 서로 다른 기본 사이트와 보조 사이트 조직 범위 라우트 - 조직 컨텍스트에 따라 달라지는 동적 URL 구조 모든 배포 구성에서 URL 이 올바르게 동작하도록 아래 가이드라인을 따릅니다. 일반 가이드라인 # URL 생성의 단일 진실 공급원(Single Source Of Truth, SSOT)으로 Rails를 사용합니다. 프론트엔드에서 URL 이 필요하면 Rails에서 생성해 프론트엔드로 전달합니다. 애플리케이션 내부 링크에는 상대 URL을 사용합니다. 절대 URL은 다음 경우에만 사용합니다. 이메일용 링크를 생성하는 경우. 외부 서비스용 URL을 구성하는 경우. 웹 인터페이스 밖에서도 동작해야 하는 클론 또는 다운로드 URL을 만드는 경우. 백엔드 가이드라인 # 경로 및 URL 헬퍼 # URL 생성에는 Rails 경로 및 URL 헬퍼 를 사용합니다. 애플리케이션 내부 링크에는 모두 *_path 헬퍼를 사용합니다. *_url 헬퍼는 다음과 같이 애플리케이션 밖에서 사용되어야 하는 링크에만 사용합니다. 이메일용 링크. 외부 서비스용 URL. 웹 인터페이스 밖에서도 동작해야 하는 클론 또는 다운로드 URL. # Correct - Relative path redirect_to project_path( @project ) # Incorrect - Absolute URL redirect_to project_url( @project ) 프론트엔드 가이드라인 # JavaScript 및 Vue # JavaScript 나 Vue에서 URL을 하드코딩하거나 조립하지 않습니다. URL은 Rails에서 생성해 데이터 속성, GraphQL 쿼리, REST API를 통해 프론트엔드로 전달합니다. // Incorrect - Do not construct URLs on the frontend const endpoint = ` ${gon.relative_url_root} / ${projectPath} /-/refs` ; 올바른 대안은 다음 섹션에서 설명합니다. JavaScript 경로 헬퍼 # GitLab은 js-routes 를 사용해 백엔드 경로 헬퍼 와 대응되는 JavaScript 경로 헬퍼를 생성합니다. 이 헬퍼는 app/assets/javascripts/lib/utils/path_helpers 디렉터리에 있습니다. 경로 헬퍼는 상대 URL 설치 를 지원하며, 이는 app/assets/javascripts/behaviors/configure_path_helpers.js 에서 전역으로 구성됩니다. 올바른 경로 헬퍼 찾기 # 올바른 경로 헬퍼를 찾는 가장 쉬운 방법은 필요한 경로의 일부 문자열로 app/asset