Když navštívíte web (jakákoli adresa URL na tomto webu), prohlížeč obvykle také odešle požadavek na stejnou doménu pro /favicon.ico Podívejte se tedy, zda web nabízí ikonu, která má být vizuální reprezentací webu.
Protože používáte trasu nejvyšší úrovně se zástupnými znaky:
app.get('/:listRoute', ...)
To bude zasaženo požadavkem na /favicon.ico . Některé další adresy URL, na které si budete muset dávat pozor, aby byly požadovány, jsou:/robots.txt , /humans.txt , /sitemap.xml , /ads.txt .
Existuje několik způsobů, jak to obejít:
-
Vaše trasa se zástupnými znaky může nejprve zkontrolovat
req.urlneboreq.params.listRouteabyste zjistili, zda je to něco, co by měl ignorovat. -
Další trasy nejvyšší úrovně, které chcete ponechat mimo trasu se zástupnými znaky, můžete umístit před tuto trasu, aby neskončily v této.
-
Nepoužívejte cestu se zástupnými znaky nejvyšší úrovně. Místo toho použijte něco jako
/list/:listRoutetakže nebude automaticky odpovídat žádnému požadavku http nejvyšší úrovně. Vaše použití cesty se zástupnými znaky nejvyšší úrovně narušuje další budoucí použití vašeho webu a může vytvářet zpětnou kompatibilitu do budoucna, když chcete na svůj web přidat další trasy nejvyšší úrovně. Představte si, že někdy v budoucnu budete chtít přidat/contactnebo/loginnebo/logout. Všechny jsou v konfliktu s/:listRoute.