这段node代码为什么不在页面上输出favicon?

let http = require('http')

http.createServer((req, res) => {
    let url = req.url
    console.log(url)
    if (url === '/') {
        res.write('root')
    } else if (url === '/favicon.ico') {
        res.write('favicon')
    }
    res.end()
}).listen(2017)

请求localhost:2017, 后台console里输出的是

/
/favicon.ico

favicon是chrome等浏览器自己默认发的,用来显示tab图标
感觉favicon.ico是后请求的,为啥页面总是显示root,永远不会显示favicon?

阅读 4.1k
3 个回答

favicon.ico 是浏览器默认加载图标用的,只针对图标,不会改写 DOM 。

为什么?
搞清几个问题先

你请求的是什么地址?
http://127.0.0.1:2017/
满足了if else if 哪个条件?
控制台中出现的 /favicon.ico 是谁请求的,输出应该在哪里? chrome 按一下F12 你应该可以明白
还有直接在地址栏里请求 http://127.0.0.1:2017/favicon.ico 页面会出现什么,控制台回输出什么

favicon是瀏覽器tab左邊那個地方顯示的, 不在頁面內, 而且格式不是字符串. 如果你返回一個字符串, 什麼都看不到是正常的.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题