Bab ini memperkenalkan kerangka kerja Go Iris dan cara menangani file statis. Terkadang dalam sebuah proyek, ada beberapa file statis yang perlu langsung diakses untuk pengguna. Bagaimana cara menyiapkannya?

Iris Mengekspos File Statik

func main() {
    app := iris.New()
	// Tetapkan ikon halaman
    app.Favicon("./resources/favicon.ico")
	// Tetapkan jalur untuk file statis dan ikat rute URL
    app.HandleDir("/assets", iris.Dir("./assets"))

    app.Listen(":8080")
}

Metode HandleDir menerima parameter opsional ketiga DirOptions:

type DirOptions struct {
    // Default nya "/index.html". Jika jalur permintaan diakhiri dengan **/*/$IndexName, itu diarahkan ke **/*(/), yang mengarah ke handler lain yang disajikan oleh kerangka kerja yang terdaftar secara otomatis sebagai handler indeks jika end-developer tidak menanganinya secara manual.
    IndexName string
    // File PushTargets (nilai dimetakan) untuk disajikan tanpa permintaan klien tambahan (HTTP/2 Push) ketika jalur permintaan spesifik (kunci peta tanpa awalan)
    // jalur permintaan (kunci peta tanpa awalan) bukanlah direktori (adalah `IndexFile`) atau kapan seharusnya.
    // PushTargetsRegexp seperti `PushTargets` tetapi menerima sebuah regex yang akan dibandingkan dengan semua file di bawah direktori (secara rekursif).
    // `IndexName` harus diatur.
    // Contoh 
    // "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
    // Lihat juga `iris.MatchCommonAssets`.
    PushTargetsRegexp map[string]*regexp.Regexp
    // Cache untuk mengaktifkan cache di memori dan file yang telah dikompres.
    Cache DirCacheOptions
    // Kapan file seharusnya disajikan dalam keadaan terkompres.
    Compress bool
    // Tampilkan daftar file dalam direktori permintaan saat ini jika `IndexName` tidak ditemukan.
    ShowList bool
    // Jika `ShowList` true, maka fungsi ini akan digunakan untuk menampilkan daftar file dari direktori yang diminta saat ini (dir)
    // alih-alih default.
    DirList DirListFunc
    // Unduh dan simpan ke file lokal.
    Attachments Attachments
    // Validator opsional untuk digunakan untuk melintasi setiap sumber daya permintaan.
    AssetValidator func(ctx *context.Context, name string) bool
}