sqzass.git

sqzass

~ A static site generator written in Rust
git clone https://github.com/debuman/sqzass.git

docs/content/deploy/cloudflare-pages.ko.md (1923B)

      1 +++
      2 title = "Cloudflare Pages"
      3 description = "대시보드 설정 두 개, 그리고 GitHub Pages가 못 주던 헤더"
      4 weight = 40
      5 toc = true
      6 +++
      7 
      8 프로젝트 빌드 설정에서:
      9 
     10 | | |
     11 |---|---|
     12 | 프레임워크 프리셋 | 없음 |
     13 | 빌드 명령 | `curl -sSL https://github.com/debuman/sqzass/releases/latest/download/sqzass-x86_64-unknown-linux-musl.tar.gz \| tar xz --strip-components=1 && ./sqzass build` |
     14 | 빌드 출력 디렉터리 | `public` |
     15 
     16 작성할 설정 파일이 없습니다.
     17 
     18 ## 헤더가 필요해지면 옮겨 갈 곳이 여기입니다
     19 
     20 sqzass는 호스트 설정에 아무것도 기대지 않도록 만들었고, 이 사이트를 GitHub Pages에
     21 둔 것도 그 약속을 정직하게 지키기 위해서입니다. 다만 GitHub Pages는 전부
     22 `cache-control: max-age=600`으로 내보내고 그걸 바꿀 방법이 없습니다.
     23 
     24 Cloudflare Pages는 `_headers` 파일을 읽으므로, 콘텐츠 해시가 붙은 파일명이 드디어
     25 제 뜻대로 쓰입니다.
     26 
     27 ```
     28 # static/_headers
     29 /css/*
     30   Cache-Control: public, max-age=31536000, immutable
     31 /js/*
     32   Cache-Control: public, max-age=31536000, immutable
     33 /*
     34   Cache-Control: public, max-age=600
     35 ```
     36 
     37 이 두 디렉터리에 1년을 걸어도 안전한 이유는, 내용이 바뀌면 파일명이 바뀌기
     38 때문입니다. 쿼리 문자열이 아니라 이름에 해시를 넣은 것의 보상이고, 헤더를 못 바꾸는
     39 호스트에서는 쓸 수 없는 보상입니다.
     40 
     41 파일을 `static/`에 두면 그대로 복사됩니다.
     42 
     43 ## 리다이렉트
     44 
     45 `_redirects`도 같은 방식으로 동작하지만, front matter의
     46 [`aliases`](@/content/front-matter.md)를 먼저 보세요.
     47 옮겨진 페이지 바로 옆에 있고, 빌드가 검사하며, 다음에 어떤 호스트로 가든 따라옵니다.
     48 
     49 ## 프리뷰 배포
     50 
     51 `$CF_PAGES_URL`에 프리뷰 주소가 들어 있습니다.
     52 
     53 ```bash
     54 ./sqzass build --base-url "$CF_PAGES_URL"
     55 ```