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
}