Dieses Kapitel stellt das Go Iris-Framework und die Behandlung von statischen Dateien vor. Manchmal gibt es in einem Projekt statische Dateien, die direkt für den Benutzer zugänglich sein müssen. Wie sollte dies eingerichtet werden?
Iris Exponiert Statische Dateien
func main() {
app := iris.New()
// Seiten-Icon festlegen
app.Favicon("./resources/favicon.ico")
// Den Pfad für statische Dateien festlegen und die URL-Route binden
app.HandleDir("/assets", iris.Dir("./assets"))
app.Listen(":8080")
}
Die HandleDir-Methode akzeptiert einen optionalen dritten Parameter DirOptions:
type DirOptions struct {
// Standardmäßig ist es "/index.html". Wenn der Anforderungspfad mit **/*/$IndexName endet, leitet es weiter zu **/*(/),
// was dazu führt, dass ein anderer Handler, der automatisch als Index-Handler vom Framework registriert ist, bedient wird
// wenn der Endentwickler dies nicht manuell behandelt hat.
IndexName string
// PushTargets-Dateinamen (gemappte Werte), die ohne zusätzliche Clientanforderungen (HTTP/2 Push) bedient werden sollen, wenn der spezifische Anforderungspfad (Schlüssel der Map ohne das Präfix)
// angeforderter Pfad (der Schlüssel der Map ohne das Präfix) ist kein Verzeichnis (ist eine `IndexFile`) oder wenn sollte.
// PushTargetsRegexp ist wie `PushTargets`, akzeptiert jedoch ein reguläres Ausdruck, der mit allen Dateien im Verzeichnis (rekursiv) verglichen wird.
// `IndexName` sollte festgelegt sein.//
// Beispiel
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
// Siehe auch `iris.MatchCommonAssets`.
PushTargetsRegexp map[string]*regexp.Regexp
// Caching zum Aktivieren des In-Memory-Caches und vorkomprimierter Dateien.
Cache DirCacheOptions
// Wenn Dateien in komprimiertem Zustand bedient werden sollen.
Compress bool
// Liste der Dateien im aktuellen Anforderungsverzeichnis anzeigen, wenn `IndexName` nicht gefunden wird.
ShowList bool
// Wenn `ShowList` wahr ist, wird diese Funktion verwendet, um die Dateiliste des aktuellen angeforderten Verzeichnisses (Verzeichnis)
// anstelle der Standardliste anzuzeigen.
DirList DirListFunc
// Herunterladen und Speichern von lokalen Dateien.
Attachments Attachments
// Optionaler Validator, um jede Ressource der Anforderung zu durchlaufen.
AssetValidator func(ctx *context.Context, name string) bool
}