Bu bölümde Go Iris çerçevesi tanıtılıyor ve statik dosyaların nasıl ele alınacağı anlatılıyor. Proje içinde bazen kullanıcı erişimi için doğrudan sunulması gereken bazı statik dosyalar olabilir. Bu nasıl ayarlanmalıdır?
Iris Statik Dosyaları Sunar
func main() {
app := iris.New()
// Sayfa simgesini ayarla
app.Favicon("./resources/favicon.ico")
// Statik dosyalar için yol belirle ve URL rotasını bağla
app.HandleDir("/assets", iris.Dir("./assets"))
app.Listen(":8080")
}
HandleDir yöntemi üçüncü isteğe bağlı bir DirOptions parametresini kabul eder:
type DirOptions struct {
// Varsayılan değer "/index.html"dır. İstek yolunun **/*/$IndexName ile bitmesi durumunda, **/*(/)'ye yönlendirilir,
// bu da başka bir işleyiciye yol açar ki, bu otomatik olarak dizin işleyici olarak kaydedilmiş olan bir çerçeve tarafından sunulmaktadır
// eğer son geliştirici manuel olarak bunu ele almadıysa.
IndexName string
// PushTargets dosya adlarını (eşlenmiş değerler) ek bir istemci isteği olmadan sunmak için kullanılır (HTTP/2 İtilme) belirli istek yolu (harita ön ek olmadan)
// istenilen yol (ön ek olmadan haritanın anahtarı) bir dizin değilse (`IndexFile`) veya ne zaman olmalıdır.
// PushTargetsRegexp, tüm dosyalarla karşılaştırılacak bir regex kabul eder (rekürsif olarak).
// `IndexName` ayarlanmalıdır.//
// Örnek
// "/": regexp.MustCompile("((.*).js|(.*).css|(.*).ico)$")
// `iris.MatchCommonAssets` da bakınız.
PushTargetsRegexp map[string]*regexp.Regexp
// Önbelleğin hafızada kullanılmasını ve önceden sıkıştırılmış dosyaları etkinleştirmek için.
Cache DirCacheOptions
// Dosyaların sıkıştırılmış bir durumda sunulması gerektiğinde.
Compress bool
// `IndexName` bulunamazsa, mevcut istek dizinindeki dosyaları listeler.
ShowList bool
// `ShowList` doğruysa, o zaman bu işlev, mevcut istenen dizinin dosya listesini görüntülemek için kullanılacaktır (dir)
// Varsayılan olansa.
DirList DirListFunc
// İndir ve yerel dosyalara kaydet.
Attachments Attachments
// Her isteğin kaynağını döngülemek için kullanılacak isteğe bağlı doğrulayıcı.
AssetValidator func(ctx *context.Context, name string) bool
}