Gdy odwiedzasz witrynę (dowolny adres URL w tej witrynie), przeglądarka zazwyczaj wysyła również żądanie do tej samej domeny o /favicon.ico
więc sprawdź, czy witryna oferuje ikonę, która będzie wizualną reprezentacją witryny.
Ponieważ korzystasz z trasy najwyższego poziomu z symbolami wieloznacznymi:
app.get('/:listRoute', ...)
To zostanie trafione żądaniem /favicon.ico
. Niektóre inne adresy URL, na które również musisz uważać, to:/robots.txt
, /humans.txt
, /sitemap.xml
, /ads.txt
.
Istnieje kilka sposobów na obejście tego problemu:
-
Twoja trasa z symbolami wieloznacznymi może najpierw sprawdzić
req.url
lubreq.params.listRoute
aby sprawdzić, czy jest to coś, co należy zignorować. -
Możesz umieścić inne trasy najwyższego poziomu, które chcesz trzymać z dala od trasy z symbolami wieloznacznymi, przed tą trasą, aby nie znalazły się w tej.
-
Nie używaj trasy z symbolami wieloznacznymi najwyższego poziomu. Zamiast tego użyj czegoś takiego jak
/list/:listRoute
więc nie będzie automatycznie pasować do żadnego żądania http najwyższego poziomu. Korzystanie z trasy najwyższego poziomu z symbolami wieloznacznymi koliduje z innymi przyszłymi zastosowaniami witryny i może zapewnić zgodność wsteczną w przyszłości, gdy chcesz dodać do witryny inne trasy najwyższego poziomu. Wyobraź sobie, że kiedyś w przyszłości zechcesz dodać/contact
lub/login
lub/logout
. Wszystkie one są w konflikcie z/:listRoute
.