Questo capitolo introduce il framework Go Iris e come gestire i file statici. A volte in un progetto, ci sono alcuni file statici che devono essere direttamente esposti per l'accesso degli utenti. Come dovrebbe essere impostato ciò?
Iris Espone File Statici
func main() {
app := iris.New()
// Imposta l'icona della pagina
app.Favicon("./resources/favicon.ico")
// Imposta il percorso per i file statici e associa il percorso URL
app.HandleDir("/assets", iris.Dir("./assets"))
app.Listen(":8080")
}
Il metodo HandleDir accetta un terzo parametro opzionale DirOptions:
type DirOptions struct {
// Default è "/index.html". Se il percorso della richiesta termina con **/*/$IndexName, viene reindirizzato a **/*(/),
// il che porta a un altro gestore servito automaticamente dal framework registrato come gestore dell'indice
// se lo sviluppatore finale non lo gestisce manualmente.
IndexName string
// I file da PushTargets (valori mappati) vengono serviti senza ulteriori richieste del client (HTTP/2 Push) quando il percorso della richiesta specifica (chiave della mappa senza il prefisso)
// percorso richiesto (la chiave della mappa senza il prefisso) non è una directory (è un `IndexFile`) o quando è necessario.
// PushTargetsRegexp è simile a `PushTargets` ma accetta un'espressione regolare che sarà confrontata con tutti i file presenti nella directory (in modo ricorsivo).
// `IndexName` dovrebbe essere impostato.
// Esempio
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
// Vedi anche `iris.MatchCommonAssets`.
PushTargetsRegexp map[string]*regexp.Regexp
// Cache per abilitare la cache in memoria e i file precompressi.
Cache DirCacheOptions
// Quando i file devono essere serviti in uno stato compresso.
Compress bool
// Elencare i file nella directory richiesta nella richiesta corrente se `IndexName` non viene trovato.
ShowList bool
// Se `ShowList` è true, allora sarà utilizzata questa funzione per visualizzare l'elenco dei file della directory richiesta corrente (dir)
// invece di quella predefinita.
DirList DirListFunc
// Scarica e salva su file locali.
Attachments Attachments
// Validatore opzionale da utilizzare per scorrere ogni risorsa della richiesta.
AssetValidator func(ctx *context.Context, name string) bool
}