Note
이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 10 버전 참조하세요.
Warning
이 버전의 ASP.NET Core 더 이상 지원되지 않습니다. 자세한 내용은 .NET 및 .NET Core 지원 정책 참조하세요. 현재 릴리스는 이 문서의 .NET 10 버전 참조하세요.
이 문서에서는 Blazor WebAssembly 사용하여 독립 실행형 호스트하고 배포하는 방법을 설명합니다.
Blazor WebAssembly 앱의 GitHub Pages 배포에 대한 다음 지침은 GitHub Pages에 배포된 라이브 도구를 사용하는 개념을 보여 줍니다. 이 도구는 ASP.NET Core 설명서 작성자가 문서 markdown에 대한 API 설명서에 대한 XREF(상호 참조) 링크를 만드는 데 사용됩니다.
-
BlazorWebAssemblyXrefGenerator샘플 앱(blazor-samples/BlazorWebAssemblyXrefGenerator) - 라이브 Xref 생성기 웹 사이트
GitHub 페이지 설정
-
작업>일반
-
작업 권한
- 엔터프라이즈 작업을 허용하고, 엔터프라이즈가 아닌 작업 및 재사용 가능한 워크플로를 선택합니다.> 사용(선택됨)
- GitHub> 사용으로 만든 작업 허용(선택됨)
-
작업 및 재사용 가능한 워크플로 허용>
stevesandersonms/ghaction-rewrite-base-href@{SHA HASH},†
- 워크플로 권한>리포지토리 콘텐츠 및 패키지 읽기 권한
-
작업 권한
-
Pages>빌드 및 배포
- Source>GitHub Actions
- 선택한 워크플로: 정적 HTML 및 Xref 생성기 도구에 대한 정적 배포 액션 스크립트를 Xref 생성기
static.yml파일을 기반으로 합니다. 파일의 구성은 다음 섹션에서 설명합니다. - 사용자 지정 도메인: 이 지침에서 다루지 않는 사용자 지정 도메인을 사용하려는 경우 설정합니다. 자세한 내용은 GitHub Pages 사이트에 대한 사용자 지정 도메인 구성 참조하세요.
- HTTPS> 사용 적용(선택됨)
† SHA 해시({SHA HASH} 자리 표시자)는 최신 stevesandersonms/ghaction-rewrite-base-href GitHub Action 릴리스 버전의 SHA 해시를 나타냅니다. 특정 버전에 고정하면 v1와 같은 버전 모니커를 사용하는 손상된 최신 릴리스가 배포를 위태롭게 할 위험이 줄어듭니다. 주기적으로, 최신 기능과 버그 수정을 위해 SHA를 최신 릴리스로 업데이트하세요.
SHA 해시를 얻으려면:
-
SteveSandersonMS/ghaction-rewrite-base-href작업 GitHub 리포지토리로 이동하세요. - 페이지의 오른쪽에 있는 릴리스 아래에서 릴리스를 선택하십시오.
- 짧은 SHA 해시를 찾고 선택하십시오(예:
5b54862). - Either:
- 브라우저의 주소 표시줄에 있는 URL에서 전체 SHA를 가져옵니다.
- 페이지 오른쪽에서 복사 단추를 선택하여 SHA를 클립보드에 배치합니다.
자세한 내용은 워크플로에서 미리 작성된 문서 블록 사용: SHA 사용(GitHub 설명서) 참조하세요.
정적 배포 스크립트 구성
배포를 위해 스크립트에서 다음 항목을 구성합니다.
- 디렉터리 게시(
PUBLISH_DIR): Blazor WebAssembly 앱이 게시된 리포지토리 폴더의 경로를 사용합니다. 앱은 특정 .NET 버전에 대해 컴파일되며 버전에 대한 경로 세그먼트가 일치해야 합니다. 예:BlazorWebAssemblyXrefGenerator/bin/Release/net9.0/publish/wwwroot은 .NET 9 SDK에net9.0TFM(Target Framework Moniker)를 채택하는 앱의 경로입니다. - 푸시 경로(
on:push:paths): 앱의 리포지토리 폴더와 와일드카드를**일치하도록 푸시 경로를 설정합니다. 예:BlazorWebAssemblyXrefGenerator/**. - .NET SDK 버전(
dotnet-version액션을 통한actions/setup-dotnet): 현재 버전을 '최신'으로 설정할 방법이 없습니다 (기능 요청에 찬성하려면 dotnet-version을 'latest'로 지정 가능하게 허용 (actions/setup-dotnet#497)을 참조하십시오). 적어도 앱의 프레임워크 버전만큼 높은 SDK 버전을 설정합니다. - 게시 경로(
dotnet publish명령): 게시 폴더 경로를 앱의 리포지토리 폴더로 설정합니다. 예:dotnet publish BlazorWebAssemblyXrefGenerator -c Release. - 기본 HREF(
base_hrefSteveSandersonMS/ghaction-rewrite-base-href작업): 최신 버전 작업의 SHA 해시를 설정합니다(지침은 GitHub 페이지 설정 섹션을 참조하세요). 앱의 기본 href을 저장소의 이름으로 설정하세요. 예: Blazor 샘플의 리포지토리 소유자가dotnet. Blazor 샘플의 리포지토리 이름은blazor-samples. Xref 생성기 도구가 GitHub Pages에 배포되면 해당 웹 주소는 리포지토리의 이름(https://dotnet.github.io/blazor-samples/)을 기반으로 합니다. 앱이 배포될 때,/blazor-samples/작업에 의해 앱의base_hrefghaction-rewrite-base-href태그에 쓸 수 있도록 기본 hrefwwwroot/index.html이<base>로 설정됩니다. 자세한 내용은 ASP.NET Core Blazor 앱 기본 경로 참조하세요.
GitHub 호스팅된 Ubuntu(최신) 서버에는 .NET SDK 버전이 미리 설치되어 있습니다. 미리 설치된 .NET SDK가 앱을 컴파일하기에 충분한 경우 actions/setup-dotnet 작업 단계를 static.yml 스크립트에서 제거할 수 있습니다.
ubuntu-latest 대해 설치된 .NET SDK를 확인하려면 다음을 수행합니다.
-
사용 가능한 이미지 섹션으로 이동합니다
actions/runner-imagesGitHub 리포지토리. -
ubuntu-latest이미지를 찾습니다. 이는 첫 번째 테이블 행입니다. -
Included Software열에서 링크를 선택합니다. - .NET 도구 섹션으로 스크롤하여 이미지와 함께 설치된 .NET SDK를 확인합니다.
배포 정보
페이지를 배포하는 기본 GitHub 작업은 밑줄(예: _framework 폴더)으로 시작하는 폴더 배포를 건너뜁니다. 밑줄로 시작하는 폴더를 배포하려면 빈 .nojekyll 파일을 앱 리포지토리의 루트에 추가합니다. 예: Xref 생성기 .nojekyll 파일
첫 번째 앱 배포 전에 이 단계를 수행합니다. Git은 JS같은 JavaScript(blazor.webassembly.js) 파일을 텍스트로 처리하고 배포 파이프라인에서 CRLF(캐리지 리턴 라인 피드)에서 LF(줄 바꿈)로 줄 끝을 변환합니다. 이러한 JS 파일의 변경은 Blazor가 클라이언트에 보내는 파일 해시와 다른 해시를 생성합니다. 불일치로 인해 클라이언트에서 무결성 검사 오류가 발생합니다. 이 문제를 해결하는 한 가지 방법은 앱의 자산을 Git 분기에 추가하기 전에 .gitattributes 행이 있는 *.js binary 파일을 추가하는 것입니다. 이 *.js binary 줄은 JS 파일을 이진 파일로 처리하도록 Git을 구성하여, 파일이 배포 파이프라인에서 처리되지 않으며 클라이언트 측 무결성 검사가 성공적으로 통과하게 합니다. 자세한 내용은 ASP.NET Core Blazor WebAssembly 캐싱 및 무결성 검사 실패 참조하세요. 예: Xref 생성기 .gitattributes 파일
single Page Apps for GitHub Pages(rafrex/spa-github-pages GitHub 리포지토리) 기반 URL 다시 쓰기를 처리하려면 다음을 수행합니다.
- 요청을
wwwroot/404.html페이지로 리디렉션하는 작업을 처리하는 스크립트를 사용하여index.html파일을 추가합니다. 예: Xref 생성기404.html파일 -
wwwroot/index.html콘텐츠에<head>스크립트를 추가합니다. 예: Xref 생성기index.html파일
GitHub Pages는 기본적으로 Brotli 압축 리소스 사용을 지원하지 않습니다. Brotli를 사용하려면:
앱의
wwwroot/decode.js폴더에wwwroot스크립트를 추가합니다. 예: Xref 생성기decode.js파일<script>태그를 추가하여decode.js스크립트를 로드하는wwwroot/index.html태그 바로 위의<script>파일에 Blazor 스크립트를 로드합니다. 예: Xref 생성기index.html파일-
autostart="false"스크립트를 위해 Blazor WebAssembly을 설정합니다. -
loadBootResource스크립트를 로드하는<script>태그 뒤의 Blazor WebAssembly 스크립트를 추가합니다. 예: Xref 생성기index.html파일
-
robots.txt및sitemap.txt파일을 추가하여 SEO를 개선합니다. 예: Xref 생성기robots.txt파일, Xref 생성기sitemap.txt파일
ASP.NET Core