지난 포스팅
웹 프로그래밍 with Golang 1 - Hello, World!
웹 프로그래밍 with Golang 2 - 템플릿 문법
정적 파일 (Static File)
정적 파일은 원본이 수정되지 않고 그대로 클라이언트에게 제공하는 파일을 의미합니다.
주로 html, css, js
를 정적 파일로 사용합니다. 간단한 구조의 CSR 애플리케이션 이라면 정적 호스팅 서버만 있어도 상관 없습니다. (예) github pages
디렉토리 구조
assets
디렉터리에 있는 파일들을 사용자에게 제공해보겠습니다.
assets
디렉터리에 존재하지만, 사용자는 /static
으로 리소스를 요청하게 만들겠습니다.
이처럼 실제 경로와는 다르게 리소스 위치를 설정할 수 있습니다.
소스코드
1 | package main |
assets
디렉토리를 읽어온 뒤 http.FileServer
메서드를 이용하여 정적 폴더로 지정합니다.
http.Handle
메서드를 이용하여 /static
으로 요청하는 경우에 fs에 접근하도록 설정합니다.
이때 http.StripPrefix
를 반드시 해야하는데, 만약 그렇지 않으면/static/assets/
에서 파일을 찾기 때문에 요청을 수행할 수 없습니다.
http.StripPrefix
를 수행한 하고나면 /assets/*
에서 파일을 찾아 사용자에게 제공합니다.
{주소}/static
에 접속해보면 index 페이지가 출력됩니다.
{주소}/static/memo1.txt
에 접속하면 작성한 텍스트 파일이 그대로 출력됩니다.