Express js empêche GET / favicon.ico
dans chaque requête, mon serveur reçoit la requête GET à / favicon.ico, même si C'est l'api REST qui n'inclut pas le fichier html. Pourquoi cela se produit-il et comment puis-je empêcher cette demande?
4 réponses
les navigateurs vont par défaut essayer de demander /favicon.ico
à partir de la racine d'un nom d'hôte, afin d'afficher une icône dans l'onglet du navigateur.
Si vous souhaitez éviter cette demande de retourner une erreur 404, vous pouvez soit:
- Alimentation
favicon.ico
fichier disponible à la racine de votre site. - utilisez un module tel que servir-favicon pour pointer les requêtes vers un fichier spécifique.
Catch
favicon.ico
demande et envoyer un204 No Content
statut:app.get('/favicon.ico', (req, res) => res.status(204));
ma méthode préférée est middleware
mettre ça quelque part:
function ignoreFavicon(req, res, next) {
if (req.originalUrl === '/favicon.ico') {
res.status(204).json({nope: true});
} else {
next();
}
}
puis:
app.use(ignoreFavicon);
je pense que vous voulez dire que votre serveur reçoit une telle demande. Généralement, le navigateur va essayer d'obtenir une icône à afficher sur l'onglet. Surtout Chrome est très agressif (du moins c'est mon observation).
Ce que vous pouvez faire est de traiter correctement la requête pour vos pages HTML et de l'Ignorer pour les appels API (car ils ne se produiront probablement pas au premier plan avec un navigateur)