在每个请求中,我的服务器都收到了对/favicon.ico的GET请求,即使它的REST api不包含html文件也是如此.为什么会发生这种情况?如何防止此请求?
dun*_*all 73
默认情况下,浏览器会尝试/favicon.ico从主机名的根目录进行请求,以便在浏览器选项卡中显示图标.
如果您想避免此请求返回404,您可以:
favicon.ico提供站点根目录下的文件.抓住favicon.ico请求并发送204 No Content状态:
app.get('/favicon.ico', (req, res) => res.status(204));
Bla*_*son 15
我首选的方法是中间件
把它放在某个地方:
function ignoreFavicon(req, res, next) {
if (req.originalUrl === '/favicon.ico') {
res.status(204).json({nope: true});
} else {
next();
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
app.use(ignoreFavicon);
Run Code Online (Sandbox Code Playgroud)
我同意@Blair Anderson的观点,中间件是最好的选择,但204 不应退缩。另外,您可能想捕获所有 favicon请求,例如:https : //example.com/some/path/favicon.ico。在这种情况下,最好的方法是:
app.use( function(req, res, next) {
if (req.originalUrl && req.originalUrl.split("/").pop() === 'favicon.ico') {
return res.sendStatus(204);
}
return next();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31619 次 |
| 最近记录: |