Ten rozdział przedstawia framework Go Iris i sposoby obsługi plików statycznych. Czasem w projekcie zawarte są pewne pliki statyczne, które muszą być bezpośrednio udostępnione użytkownikowi. Jak to można skonfigurować?

Iris Udostępnia Pliki Statyczne

func main() {
    app := iris.New()
	// Ustaw ikonę strony
    app.Favicon("./resources/favicon.ico")
	// Ustaw ścieżkę dla plików statycznych i powiąż trasę URL
    app.HandleDir("/assets", iris.Dir("./assets"))

    app.Listen(":8080")
}

Metoda HandleDir przyjmuje trzeci opcjonalny parametr DirOptions:

type DirOptions struct {
    // Domyślnie "/index.html". Jeśli ścieżka żądania kończy się na **/*/$IndexName, następuje przekierowanie do **/*(/),
    // co prowadzi do innego obsługującego powiązanego automatycznie przez framework jako obsługę indeksową
    // jeśli end-developer nie obsłużył tego ręcznie.
    IndexName string
    // PushTargets mapa nazw plików (odwzorowane wartości), które mają być obsługiwane bez dodatkowych żądań klienta (HTTP/2 Push) po żądanej ścieżce (klucz mapy bez prefiksu)
    // żądanej ścieżce (klucz mapy bez prefiksu) nie jest katalogiem (jest `IndexFile`) bądź kiedy powinien.
// PushTargetsRegexp podobne do `PushTargets`, ale przyjmuje wyrażenie regularne, które będzie porównywane z wszystkimi plikami w katalogu (rekurencyjnie).
// `IndexName` powinien być ustawiony.
// Przykład
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
// Zobacz również `iris.MatchCommonAssets`.
PushTargetsRegexp map[string]*regexp.Regexp

// Cache pamięci podręcznej i pliki pre-skompresowane.
Cache DirCacheOptions
// Kiedy pliki powinny być obsługiwane w skompresowanym stanie.
Compress bool

// Wyświetl listę plików w bieżącym katalogu żądania, jeśli `IndexName` nie zostanie znalezione.
ShowList bool
// Jeśli `ShowList` jest prawdziwe, wówczas ta funkcja zostanie użyta do wyświetlania listy plików bieżącego żądanego katalogu (dir)
// zamiast domyślnej.
DirList DirListFunc

// Pobierz i zapisz do plików lokalnych. 
Attachments Attachments

// Opcjonalny walidator do użycia podczas przechodzenia przez zasoby żądania.
AssetValidator func(ctx *context.Context, name string) bool
}