이 장에서는 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
}