이 장에서는 Go Iris 프레임워크와 정적 파일 처리 방법을 소개합니다. 프로젝트에서 사용자가 직접 액세스해야 하는 정적 파일이있는 경우는 어떻게 설정해야합니까?
Iris가 정적 파일 노출하기
func main() {
app := iris.New()
// 페이지 아이콘 설정
app.Favicon("./resources/favicon.ico")
// 정적 파일의 경로 설정 및 URL 경로를 매핑
app.HandleDir("/assets", iris.Dir("./assets"))
app.Listen(":8080")
}
HandleDir 메서드는 세 번째 선택적 매개변수 DirOptions을 받습니다.
type DirOptions struct {
// 기본값은 "/index.html"입니다. 요청 경로가 **/*/$IndexName로 끝나면, **/*(/)으로 리디렉션됩니다.
// 이는 다른 핸들러로 이어지며, 개발자가 수동으로 처리하지 않은 경우 자동으로 등록된 인덱스 핸들러로 제공됩니다.
IndexName string
// PushTargets 파일 이름 (값 매핑)은 특정 요청 경로 (접두사 없이 맵의 키)가 디렉터리가 아닐 때(‘IndexFile’) 또는 should을 요청할 때
// 추가 클라이언트 요청없이 서비스 할 때(HTTP/2 푸시)
PushTargetsRegexp는 모든 파일과 비교될 정규식을 받습니다 (재귀적으로).`IndexName`가 설정되어야 합니다.
// 예시
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$").
// iris.MatchCommonAssets도 참조하세요.
PushTargetsRegexp map[string]*regexp.Regexp
// 메모리 내 캐시 및 미리 압축된 파일을 활성화하기 위한 캐싱.
Cache DirCacheOptions
// 파일을 압축된 상태로 제공해야 할 때
Compress bool
// `IndexName`이 발견되지 않으면 현재 요청된 디렉토리의 파일을 나열합니다.
ShowList bool
// `ShowList`가 true이면, 현재 요청된 디렉토리(dir)의 파일 목록을 기본 값 대신에 표시할 때 이 기능이 사용됩니다.
DirList DirListFunc
// 다운로드하고 로컬 파일에 저장합니다.
Attachments Attachments
// 각 요청의 리소스를 순회하는 데 사용할 선택적 유효성 검사기
AssetValidator func(ctx *context.Context, name string) bool
}