Başvuru
Hatalar
collage'ın dışa açtığı her hata değeri, nereden geldiğine göre gruplanmış hâlde; ne anlama geldiği ve ne yapmanız gerektiğiyle birlikte.
collage hataları pkg/collage'dan dışa açılan sabit (sentinel) hata değerleriyle
bildirir ve onları ayrıntılarla — sayfa, yol, alan — sarmalar. Bunları mesajları
karşılaştırarak değil, her zaman errors.Is ile eşleştirin:
if err := app.RegisterPage(page); errors.Is(err, collage.ErrDuplicateRoute) {
// two pages claim one path
}
Çoğu başlangıçta bildirilir: New yapılandırmayı doğrular ve her şablonu
ayrıştırır, kayıt her sayfayı doğrular, uygulamanın başlatılması da ancak bütün
kümenin ortaya çıkarabileceği şeyleri denetler. Sitenin bir araya getirilişindeki bir
hata, onu ilk bulan okuyucuda patlayan bir sayfa değil, başlamayı reddeden bir
programdır.
Aşağıdaki tablolar her hatanın nereden geldiğine göre gruplanmıştır. Mesaj, herhangi bir sarmalama ayrıntı eklemeden önce sentinel'in taşıdığı metindir.
v0.10.0'dan itibaren aşağıdaki her hata dışa açıktır. Öncesinde action, istek
sahteciliği, metot, asset, {{dict}} ve şablonun kök dizinden kaçması hataları ile
ErrNotStatic vardı, ama birbirinden yalnızca mesajlarıyla ayırt edilebiliyordu.
(ErrTemplateRootMissing zaten dışa açıktı.)
Yapılandırma
collage.New tarafından, Config.Validate'ten ya da uygulama kurulurken döner.
Bkz. Yapılandırma.
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrNilConfig |
collage: nil config |
New(nil). |
Bir *Config verin; sıfır değeri de olur. |
ErrInvalidPort |
collage: invalid port |
Server.Port, 1–65535 aralığının dışında. |
3000 için sıfır bırakın ya da geçerli bir port verin. |
ErrEmptyTemplateRoot |
collage: empty template root |
Template.Root boş ve Template.FS nil. |
Yalnızca Validate'i kendiniz çağırırsanız karşılaşılır; New önce Root'a varsayılan değer atar. |
ErrTemplateRootMissing |
collage: template root missing |
Template.Root yok ya da bir dizin değil. |
En sık görülen başlangıç hatası: çalışma dizinini kontrol edin ya da şablonları gömün. |
ErrTemplateEscapesRoot |
collage: template escapes root |
Template.Root altındaki bir şablon, dizinin dışına çözümleniyor — dizinden dışarı çıkan bir sembolik bağlantı. |
Dosyaya bağlantı vermek yerine dosyayı içeri kopyalayın. |
ErrInvalidCacheType |
collage: invalid cache type |
Cache.Enabled açık, Store yok ve Type ne "memory" ne "disk". |
Yazımı düzeltin ya da bir Store verin. |
ErrEmptyCacheDir |
collage: disk cache needs a directory |
Cache.Type "disk" ve Cache.Dir boş. |
Dir'i ayarlayın. |
ErrEmptyCacheVersion |
collage: disk cache needs a version |
Bir disk önbelleği sürüm olmadan kuruldu. | Normalde karşılaşılmaz: boş bir Version binary'den türetilir. |
ErrUnsupportedCache |
collage: unsupported cache type |
Önbellek tipi, framework'ün kurabileceği hiçbir şeyi adlandırmıyor. | Normalde daha önce ErrInvalidCacheType olarak yakalanır. |
ErrEmptyLocaleDefault |
collage: empty default locale |
Locale.Default boş. |
Yalnızca Validate üzerinden karşılaşılır; New varsayılan olarak "en" atar. |
ErrLocaleDefaultNotSupported |
collage: default locale not in supported locales |
Locale.Supported, Locale.Default'u içermiyor. |
Varsayılanı Supported'a ekleyin. |
ErrNegativeDuration |
collage: negative duration |
Altı süre alanından biri negatif; mesaj hangisi olduğunu söyler. | Varsayılan için sıfır kullanın. |
Plugin'ler ve komutlar
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrNilPlugin |
collage: nil plugin |
nil bir plugin kaydedildi. |
— |
ErrEmptyPluginName |
collage: empty plugin name |
Bir plugin'in Name()'i boş. |
acme/stamp gibi bir ad verin. |
ErrDuplicatePlugin |
collage: duplicate plugin |
İki plugin aynı adı taşıyor. | Her plugin'i bir kez kaydedin. |
ErrConfigurerRegisteredLate |
collage: plugin needs Configure and must be supplied in Config.Plugins |
RegisterPlugin'e Configure aşaması olan bir plugin verildi; o aşama çoktan geçti. |
Onu Config.Plugins'e taşıyın. |
ErrDuplicateTemplateFunc |
collage: duplicate plugin template function |
AddTemplateFunc zaten eklenmiş bir ad için çağrıldı — başka bir plugin tarafından ya da aynı plugin tarafından ikinci kez. |
AddTemplateFunc bunu plugin'in Configure'una döndürür; New yalnızca Configure bunu döndürürse başarısız olur. Plugin'ler çakışıyor: Template.Funcs bunu önleyemez, bu yüzden birini çıkarın ya da yeniden adlandırın. |
ErrUnknownPluginConfig |
collage: plugin configuration names no registered plugin |
Bir PluginConfig anahtarı kayıtlı hiçbir plugin'le eşleşmiyor. Uygulama başlarken denetlenir. |
Neredeyse her zaman anahtardaki bir yazım hatasıdır. |
ErrEmptyCommandName |
collage: empty command name |
Adsız bir RegisterCommand. |
— |
ErrDuplicateCommand |
collage: duplicate command name |
İki komut aynı adı taşıyor. | — |
ErrNilApp |
collage: nil app |
DispatchCommands'a nil bir *App verildi. |
— |
ErrUnknownCommand |
collage: unknown command |
DispatchCommands hiç argüman almadı ya da hiçbir plugin'in kaydetmediği bir ad aldı. |
İskelet olarak üretilen main.go bunda, bir kullanım hatası olarak 2 ile çıkar; bunun yerine sunmayı tercih eden bir program bu hatada akışı sürdürebilir. |
Bkz. Plugin yazmak.
Fragment'ler ve sayfalar
Bunları iki yer bildirir. Birkaçını builder'lar zincir çalışırken kaydeder —
WithSlot, WithSlotResolver ve WithSlotFragment'tan ErrDuplicateSlot,
ErrUnknownSlot ve ErrSlotResolved (WithSlotFragment ayrıca Bind'ın
ErrNilFragment ve ErrSlotOccupied hatalarını da kaydeder), WithTimeout'tan
ErrInvalidTimeout, bir sayfanın Build'inden ErrMissingContent ve bir
document'ın Build'inden ErrNoDocumentHandler — ve bunları BuildErr() ile
okuyabilirsiniz. Bir builder'ın kaydettiği hata, kurduğu değerin üzerinde kalır;
RegisterPage ve RegisterDocument de böyle bir hata taşıyan — sayfanın kendisine
ya da ağacındaki herhangi bir fragment'e ait — bir değeri, BuildErr() çağrılmış
olsun ya da olmasın, collage: page %q was built with errors: %w (bir document için
collage: document %q was built with errors: %w) olarak sarmalayıp reddeder.
Geri kalanları, sayfa kaydedilirken doğrulama bulur: RegisterPage ağaçtaki her
fragment'i; adlarını, şablonlarını, slot'larını, zaman aşımlarını, TTL'lerini,
yollarını ve hata sayfalarını denetler ve ilk hatayı döndürür. WithFragmentPath ile
açılan bir fragment bu açıdan sayfanın bir parçasıdır (v0.11.0'dan itibaren): şablonu,
builder'ının hataları ve doğrulaması, diğerleri gibi kayıt sırasında denetlenir. Her
iki durumda da hatalı kurulmuş bir sayfa, herhangi bir şey sunmadan önce reddedilir.
| Hata | Mesaj | Anlamı |
|---|---|---|
ErrEmptyName |
collage: empty name |
Bir fragment'in ya da sayfanın adı yok. |
ErrEmptyTemplatePath |
collage: empty template path |
Bir fragment hiçbir şablon adlandırmıyor. |
ErrNilFragment |
collage: nil fragment |
Fragment gereken bir yerde nil bir fragment kullanıldı — bir slot'a bağlandı ya da bir slot resolver'ı tarafından döndürüldü. |
ErrDuplicateSlot |
collage: slot already declared |
WithSlot aynı adla iki kez çağrıldı. |
ErrUnknownSlot |
collage: unknown slot |
Fragment'in hiç bildirmediği bir slot'a bir fragment bağlandı ya da bir şablon onun için {{slot}} çağırdı. |
ErrInvalidSlotDefinition |
collage: invalid slot definition |
Bir slot'un adı boş ya da map anahtarı kendi adıyla eşleşmiyor. |
ErrSlotOccupied |
collage: slot already occupied |
Zaten bir fragment tutan bir slot'a ikinci bir fragment bağlandı — ya da bir resolver onun için birkaç tane döndürdü. |
ErrSlotResolved |
collage: slot is filled by a resolver |
Bir slot'a hem bir resolver hem de bağlı fragment'ler verildi. |
ErrRequiredSlotUnfilled |
collage: required slot has no fill |
Zorunlu olarak bildirilen bir slot'a hiçbir şey bağlanmamış. |
ErrFragmentCycle |
collage: fragment cycle detected |
Bir fragment'e kendisinden ulaşılabiliyor. |
ErrMissingContent |
collage: missing content |
Bir sayfanın içerik fragment'i yok. |
ErrInvalidTimeout |
collage: invalid timeout |
Bir fragment'in zaman aşımı negatif. |
ErrMissingTTL |
collage: missing cache ttl for incremental strategy |
Incremental'a sıfır bir TTL verildi. |
ErrInvalidTTL |
collage: invalid cache ttl |
Bir sayfanın TTL'i negatif. |
ErrInvalidPath |
collage: invalid path |
Bir yol pattern'i / ile başlamıyor. |
ErrInvalidRedirectStatus |
collage: invalid redirect status code |
0, 301, 302, 307 ya da 308 dışında bir yönlendirme durum kodu. |
ErrSelfErrorPage |
collage: page cannot reference itself as an error page |
Bir sayfa kendi bulunamadı ya da hata sayfası. |
Bkz. Sayfalar ve layout'lar ve Fragment'ler ve slot'lar.
Kayıt ve yönlendirme
RegisterPage, RegisterNotFoundPage, RegisterErrorPage ve RegisterDocument
tarafından ya da uygulama başlarken döner.
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrAppStarted |
collage: application already started |
Uygulama başladıktan sonra bir kayıt metodu çağrıldı — başarısız olan herhangi bir başlatmadan sonra çağrılan RegisterPlugin dahil (v0.12.0'dan itibaren; bir plugin'in Init'inde başarısız olan bir başlatmadan sonra v0.11.0'dan itibaren). |
Her şeyi Handler, ListenAndServe, Start, RenderPath ya da DispatchCommands'tan önce kaydedin. |
ErrNilPage |
collage: nil page |
nil bir sayfa kaydedildi. |
— |
ErrDuplicatePage |
collage: duplicate page name |
İki sayfa aynı adı taşıyor. | Bağlantılar sayfaları adlarıyla bulur; adları benzersiz yapın. |
ErrTemplateNotFound |
collage: template not found |
Bir sayfanın fragment'i yüklenmemiş bir şablonu adlandırıyor. | Yolu, uzantısıyla birlikte, Template.Root'a göre kontrol edin. |
ErrUnregisteredErrorPage |
collage: error page not registered |
Bir sayfa hiç kaydedilmemiş bir bulunamadı ya da hata sayfasını adlandırıyor. Başlangıçta denetlenir. | Onu RegisterNotFoundPage ya da RegisterErrorPage ile kaydedin; kaydedilmemiş olan, gerektiğinde boş render edilirdi. |
ErrInvalidPattern |
collage: invalid pattern |
Bir yol ya da yönlendirme kaynağı hatalı: başta / yok, boş bir segment var, boş bir yer tutucu adı var, catch-all en sonda değil ya da — v0.11.0'dan itibaren — /feeds/{category}.xml gibi bir segmentin içinde bir yer tutucu var. |
Pattern'i düzeltin. Bir yer tutucu bütün bir segmenttir: /feeds/{category}/rss.xml. |
ErrDuplicateRoute |
collage: duplicate route |
Bir yol ya da yönlendirme kaynağı o locale'de zaten kayıtlı. | — |
ErrAmbiguousParameterName |
collage: ambiguous parameter name |
İki pattern aynı konumda farklı parametre adları kullanıyor, örneğin /blog/{slug} ve /blog/{id}/edit. |
O konumda tek bir ad kullanın. |
ErrRedirectShadowsPage |
collage: redirect shadows a registered page |
Bir yönlendirmenin kaynağı aynı zamanda bir sayfanın yolu. | İkisinden birine ulaşılamazdı; birini kaldırın. |
ErrUnsubstitutedPlaceholder |
collage: redirect placeholder not captured by from pattern |
Bir yönlendirmenin hedefi, kaynağının yakalamadığı bir {name} kullanıyor. |
Onu kaynakta yakalayın ya da kaldırın. |
Document'lar
| Hata | Mesaj | Anlamı |
|---|---|---|
ErrNilDocument |
collage: nil document |
nil bir document kaydedildi. |
ErrEmptyContentType |
collage: empty content type |
Bir document hiçbir içerik tipi bildirmiyor. İçerik tipi zorunludur ve asla tahmin edilmez. |
ErrNoDocumentHandler |
collage: document has no handler |
Bir document'ın handler'ı yok. Bir sayfanın aksine, geri çekilebileceği bir şablonu yoktur. |
ErrDuplicateDocument |
collage: duplicate document name |
İki document aynı adı taşıyor. |
ErrDocumentNotFound |
collage: no document at path |
RenderDocumentPath yolda hiçbir document bulamadı — orada bir sayfa ya da yönlendirme olduğu durum dahil. |
ErrEmptyDocumentBody |
collage: document handler produced an empty body |
Bir handler boş bir gövdeyle başarılı oldu: sunulurken 500'dür ve bir build tarafından yazılmaz. Gerçekten "boş" demek isteyen bir handler tek bir satır sonu döndürebilir. |
Bkz. Document'lar.
Mount'lar ve handler'lar
| Hata | Mesaj | Anlamı |
|---|---|---|
ErrUnknownAsset |
collage: unknown asset |
rc.Asset, rc.HoistStylesheet, {{asset}} ya da {{stylesheet}}'e hiçbir mount'un sunmadığı bir yol verildi. Bir şablonda render başarısız olur. |
ErrNoMountForAsset |
collage: no mount serves that asset |
Hiçbir mount'un önekinin yolu hiç kapsamadığı durumda ErrUnknownAsset'in içine sarmalanır — böyle bir dosyası olmayan bir mount'un aksine. |
ErrInvalidPrefix |
collage: invalid mount prefix |
Bir mount öneki / ile başlayıp bitmiyor, yalnızca /'dan ibaret ya da // ile başlıyor. /'daki bir mount her route'u yutardı. |
ErrNilFS |
collage: nil mount file system |
Bir mount'a hiçbir dosya sistemi verilmedi. |
ErrMountConflict |
collage: mount prefixes overlap |
İki mount — ya da bir mount ile bir App.Handle öneki — çakışan önekler talep ediyor. |
ErrMountShadowsRoute |
collage: mount shadows a route |
Bir mount öneki ya da bir App.Handle öneki, bir route'un yolunu — bir sayfanın, bir document'ın, bir yönlendirmenin ya da bir action'ın — yutardı. Kayıt sırası ne olursa olsun başlangıçta denetlenir. |
ErrInvalidHandlerPrefix |
collage: handler prefix must begin and end with "/" and not be "/" |
App.Handle'a hatalı bir önek verildi. |
ErrNilHandler |
collage: nil handler |
App.Handle'a ya da App.Use'a çalıştıracak hiçbir şey verilmedi. |
Bkz. Statik dosyalar ve Middleware ve kendi API'niz.
Render
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrNotFound |
collage: not found |
Bunu siz döndürürsünüz. Bunu sarmalayan bir data handler, içeriğin yüklenemediğini değil, var olmadığını söyler. | fmt.Errorf("post %q: %w", slug, collage.ErrNotFound), zorunlu bir fragment'in hatasını 500 yerine bulunamadı sayfasıyla birlikte bir 404 yapar. |
ErrRequiredSlotEmpty |
collage: required slot is empty |
Render sırasında zorunlu bir slot hiçbir şey tutmuyor — genellikle bir resolver hiç fragment döndürmemiştir. | Fragment'in hata politikasına tabidir. |
ErrMaxDepthExceeded |
collage: max fragment depth exceeded |
Fragment ağacı, motorun izin verdiğinden daha derin iç içe geçiyor. | Neredeyse her zaman, doğrudan ya da dolaylı olarak kendi slot'una bağlanmış bir fragment'tir. |
ErrNoRootFragment |
collage: page has no root fragment |
Bir sayfanın ne layout'u ne de içeriği var. | — |
ErrPageNotFound |
collage: no page at path |
App.RenderPath yolda hiçbir sayfa bulamadı. |
— |
ErrOnceTypeMismatch |
collage: once key fetched as two different types |
İki collage.Once çağrısı, tek bir render içinde aynı anahtarı farklı tiplerle istedi. |
Anahtarlar çakışıyor; onlara ad alanı verin. |
ErrCachedTypeMismatch |
collage: Cached key holds a value of a different type |
İki collage.Cached çağrısı aynı anahtarı farklı tiplerle istedi. |
Yukarıdaki gibi. |
ErrDictOddArgs |
collage: dict requires an even number of arguments |
{{dict}}'e değeri olmayan bir anahtar verildi. |
Her anahtarı bir değerle eşleştirin. |
ErrDictKeyNotString |
collage: dict key must be a string |
Bir {{dict}} anahtarı string değil. |
Anahtarı tırnak içine alın. |
ErrCSRFDisabled |
collage: csrfToken used but request-forgery protection is disabled |
Security.DisableCSRF ayarlanmış bir uygulamada bir şablon {{csrfToken}} çağırıyor. |
Çağrıyı kaldırın ya da korumayı yeniden açın. |
Bir data handler'daki, bir slot resolver'ındaki ya da bir şablon fonksiyonundaki
panic süreci çökertmez: bir collage.PanicError'a dönüşür ve fragment, diğer her
hatada olduğu gibi başarısız olur. Panic değerini ve yığınını geri almak için ona
errors.As ile ulaşın:
var panicked *collage.PanicError
if errors.As(err, &panicked) {
log.Printf("panic: %v", panicked.Value)
}
Bir hatanın nasıl 404'e, 500'e, bir yedeğe ya da hiçliğe dönüştüğü için bkz. Data handler'lar.
Bağlantılar ve URL'ler
App.URL tarafından ve {{pageURL}}, {{pageURLIn}} ve {{localeURL}}'den
kaynaklanan başarısız render'larda döner. Bkz.
Bağlantılar ve locale'ler.
| Hata | Mesaj | Anlamı |
|---|---|---|
ErrUnknownRoute |
collage: no page or document by that name |
O adla kayıtlı hiçbir sayfa ya da document yok — ya da ikisi de kayıtlı ve bağlantı belirsiz. |
ErrNoPathInLocale |
collage: no path in that locale |
Route'un istenen locale'de yolu yok. {{pageURL}} bunun yerine varsayılan locale'e geri döner, {{localeURL}} ise boş string render eder. |
ErrRouteParams |
collage: route parameters do not match the pattern |
Bir parametre eksik ya da boş, hiçbir yer tutucuyu adlandırmıyor, . ya da .., ya da şablon tek sayıda argüman geçti. |
ErrLocaleUnreachable |
collage: no URL reaches that locale |
Locale Locale.Supported içinde değil ya da varsayılan değil ve yol locale'leri kapalı. |
Action'lar
RegisterAction tarafından döner. RegisterPage bir sayfaya bağlı bir action'ı da
denetler — ErrNilAction, ErrNoMethods ve v0.10.0'dan itibaren
ErrNoActionHandler ile ErrDuplicateAction — ve nil bir fragment yolunu
ErrNilFragmentPath ile reddeder. v0.11.0'dan itibaren tek bir ErrNoActionHandler
vardır; kayıtta da bir istekte de aynı değerdir.
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrNilAction |
collage: nil action |
nil bir action kaydedildi ya da bir sayfaya bağlandı. |
— |
ErrEmptyActionName |
collage: action has no name |
Bir action'ın adı yok. | Bir ad verin; ad, action'ı loglarda ve hatalarda tanımlar. |
ErrDuplicateAction |
collage: duplicate action |
Zaten alınmış bir adla ikinci bir action kaydedildi. | — |
ErrNoActionPaths |
collage: action has no paths |
Bağımsız bir action'ın WithPath'i yok. |
Bir sayfadaki action sayfanın yollarını alır; kendi başına olan bir action'ın kendi yollarına ihtiyacı vardır. |
ErrNoActionHandler |
collage: action has no handler |
Bir action'ın WithHandler'ı yok. |
— |
ErrNoMethods |
collage: action declares no methods |
Bir action hiçbir metoda yanıt vermiyor. | WithMethods(http.MethodPost) ya da bir sayfada WithAction. |
ErrNilFragmentPath |
collage: fragment path has no fragment |
WithFragmentPath'e nil bir fragment verildi. |
— |
ErrUnregisteredPage |
collage: action answered with a page that was never registered |
Bir action'ın RenderPage'i kaydedilmemiş bir sayfa döndürdü. İstek 500 ile başarısız olur. |
Sayfayı kaydedin ve handler içinde yeni bir tane kurmak yerine o aynı değerle yanıt verin. |
Bkz. Formlar ve action'lar.
Vary ve SkipCache
Middleware'den çağrılması gereken collage.Vary ve collage.SkipCache tarafından
döner. Bkz. Önbellekleme ve Önizlemeler.
| Hata | Mesaj | Anlamı | Ne yapmalı |
|---|---|---|---|
ErrVaryTooLate |
collage: Vary or SkipCache called after routing; call it from middleware |
Vary ya da SkipCache yönlendirme başladıktan sonra çağrıldı — örneğin bir data handler'dan. v0.11.0'dan itibaren her route'ta; öncesinde yalnızca önbelleğe alınan bir sayfada döner, başka yerdeki geç bir çağrı hiçbir şey yapmazdı. |
Onu App.Use ile kaydedilmiş middleware'den çağırın. |
ErrVaryOutsideRequest |
collage: Vary called on a request collage is not serving |
Vary ya da SkipCache, collage'ın handler'ından geçmemiş bir istek üzerinde çağrıldı. |
— |
İstek sahteciliği
Sahtecilik denetiminden geçemeyen bir gönderim, action'ın handler'ı çalışmadan önce
bir 403 ile yanıtlanır; hata hook'ları da nedeni, action'ın adıyla sarmalanmış
olarak "route" aşamasında alır:
| Hata | Mesaj | Anlamı |
|---|---|---|
ErrCSRFMissing |
collage: no csrf token |
Gönderim hiçbir token ya da hiçbir cookie taşımıyordu. |
ErrCSRFMismatch |
collage: csrf token does not match |
Token, cookie'deki token değil. |
ErrCSRFInvalid |
collage: csrf token is not valid |
Token bu uygulamanın anahtarıyla imzalanmamış. |
Olağan nedenler, {{csrfToken}} içermeyen bir form ve süreç başına üretilen bir
anahtardır — token'ların yeniden başlatmalardan sağ çıkması ve instance'lar arasında
çalışması için Security.CSRFKey'i ayarlayın. Boyut sınırını aşan bir gövde ise,
sınıra takılan şey token'ın okunması olsa bile, bunun yerine bir 413'tür. Bkz.
Formlar ve action'lar.
Security.DisableCSRF ayarlanmış bir uygulamadaki {{csrfToken}},
ErrCSRFDisabled'dır; bkz. Render.
Hata hook'larına bildirilenler
Bunlar bir plugin'in OnError'ına ErrorEvent.Err içinde ulaşır; böylece plugin,
mesajları okumadan hataları birbirinden ayırt edebilir. Bkz.
Plugin yazmak.
| Hata | Mesaj | Aşama | Anlamı |
|---|---|---|---|
ErrNoRoute |
collage: no route matched the request |
not_found |
İstekle hiçbir route eşleşmedi — bir bağlantı ya da yönlendirme sorunu. Bilerek ErrNotFound değildir: ikisi de 404'tür ama nedenleri farklıdır. |
ErrNotFound |
bkz. Render | render |
Zorunlu bir fragment'in içeriği yok — bir içerik sorunu. |
ErrMethodNotAllowed |
collage: method not allowed |
route |
Yol var ama böyle bir metoda yanıt vermiyor: yanıt verdiği metotları adlandıran bir Allow header'ıyla bir 405. Bir document'ın URL'sinde 405 düz metindir (v0.11.0'dan itibaren). |
ErrEmptyRender |
collage: page rendered no markup |
render |
Bir sayfa başarıyla render edildi ama sunulurken ya da bir action tarafından yanıt olarak verilirken hiçbir markup üretmedi: bir 500. Statik bir build'in kaydettiği sentinel'in aynısıdır. |
ErrCSRFMissing, ErrCSRFMismatch, ErrCSRFInvalid |
bkz. yukarısı | route |
Sahtecilik denetiminin reddettiği bir gönderim. |
ErrEmptyErrorPage |
collage: error page rendered empty |
error_page |
Kayıtlı bir hata sayfası başarıyla render edildi ama hiçbir markup üretmedi; bu yüzden yerine yerleşik sayfa sunuldu. |
ErrPanic |
collage: panic recovered while serving the request |
panic |
Sunum sırasında bir şey panic'ledi — bir Cache, Metrics ya da Tracer implementasyonu, bir router, bir plugin hook'u — ve bir 500'e dönüştürülerek kurtarıldı. Data handler'lardaki ve şablonlardaki panic'ler ise PanicError'dır. |
ErrAssetFailed |
collage: asset request failed |
asset |
Mount edilmiş bir dosya isteği 400 ya da üzeri bir durum koduyla yanıtlandı: bu tür her durum için tek bir sentinel. |
ErrHandlerFailed |
collage: mounted handler failed |
handler |
App.Handle ile mount edilmiş bir handler bir sunucu hatasıyla yanıt verdi. |
ErrUnsafeRedirectTarget |
collage: unsafe redirect target |
route |
Bir yönlendirmenin hedefi, yer değiştirmeden sonra tek eğik çizgiyle başlayan göreli bir yol değil — //host, /\host ya da kontrol karakteri içeren bir yol. Bir Location header'ıyla değil, bir 500 ile yanıtlanır. |
Alarm kurmaya değer aşama "error_page"'dir: hataları bildiren sayfanın kendisi
başarısız oldu ve okuyucu yine de makul görünen bir sayfa gördü; yani bunu size
başka hiçbir şey söylemezdi.
Statik build'ler
collage.NewBuilder ve Builder.Build tarafından döner ya da BuildReport'a
kaydedilir. Bkz. Statik dışa aktarma.
| Hata | Mesaj | Nerede | Anlamı |
|---|---|---|---|
ErrNilRenderer |
collage: nil renderer |
NewBuilder |
App nil. |
ErrInvalidOutDir |
collage: invalid output directory |
NewBuilder |
BuildOptions.OutDir boş. |
ErrDangerousOutDir |
collage: refusing to use a dangerous output directory |
Build |
OutDir bir dosya sistemi köküne — ya da Clean ile birlikte bir depo köküne — çözümleniyor. |
ErrOutputPathCollision |
collage: two builds target one output path |
Build |
İki sayfa tek bir dosyaya yazılacaktı — yalnızca sondaki eğik çizgiyle ayrılan pattern'ler ya da bir yolu iki kez döndüren bir path provider. Herhangi bir sayfa render edilmeden önce bildirilir ve ardından hiçbir sayfa render edilmez: document'lar, 404.html ve asset'ler yine de yazılır. |
ErrPathEscapesOutDir |
collage: resolved path escapes the output directory |
rapor hatası | Bir çıktı yolu ya da ona giden yoldaki bir sembolik bağlantı OutDir'in dışına çıkıyor. O tek dosya yazılmadan önce denetlenir; yalnızca o yol başarısız olur. |
ErrDynamicPathUnresolved |
collage: dynamic path pattern requires a path provider |
atlama | Bir sayfanın ya da document'ın yolunda bir {param} var ve path provider yok. |
ErrNotStatic |
collage: a Dynamic() route cannot be built statically |
atlama | Bir sayfa ya da document Dynamic(); dolayısıyla dışa aktarılacak bir şey yok. |
ErrDuplicateOutputPath |
collage: two build tasks write the same output path |
atlama | İki document görevi tek bir dosyaya çözümleniyor — bir yolu iki kez döndüren bir DocumentPathProvider. İlki derlenir, diğerleri atlanır. |
ErrDegradedRender |
collage: refusing to write a degraded render |
rapor hatası | Bir sayfa başarısız bir fragment'le render edildi ve AllowDegraded kapalı. Hiçbir dosya yazılmaz. |
ErrEmptyRender |
collage: page rendered no markup |
rapor hatası | Bir sayfa hiç markup render etmedi. AllowDegraded açıkken bile reddedilir. Yukarıdaki sunum sentinel'iyle aynıdır. |
ErrUnresolvedToken |
collage: refusing to write a page whose forgery token was never resolved |
rapor hatası, atlama | Bulunamadı sayfası bir {{csrfToken}} taşıyor: bir rapor hatası. Token taşıyan diğer her sayfa ise atlanır: bir sunucuya ihtiyacı vardır. |
ErrBuildPanic |
collage: panic while building a page |
rapor hatası | Bir sayfanın render edilmesi ya da yazılması panic'ledi; build kurtarıldı ve diğerleriyle devam etti. |
ErrEmptyDocumentBody |
bkz. Document'lar | rapor hatası | Bir document boş bir gövde üretti. |
Rapor hataları, errors.Is ile eşleşen hatalardan oluşan bir dilim olan
BuildReport.Errors'tadır. Bir atlama, BuildReport.Skipped içindeki bir
SkipRecord'dur: Reason'ı insanlar için bir cümle, Err'i ise (v0.10.0'dan
itibaren) kod için sentinel'dir — ErrNotStatic, ErrDynamicPathUnresolved,
ErrUnresolvedToken ya da ErrDuplicateOutputPath — bu yüzden onu Reason'ı okuyarak
değil, errors.Is(skip.Err, …) ile eşleştirin.