Python - 龙卷风:如何 return 404 而不是 500 的图标

Python - Tornado : How to return 404 instead 500 for favicon

每次我 运行 我的代码都在 Chrome 中。它returns 两个请求。第二个是 favicon.ico

但是Favicon.ico的内容类型是text/html,状态是500

如何将其状态更改为 404

我没有 favicon.ico 也不想

不确定为什么会得到 500,但如果您根本不需要网站图标,也许您可​​以在 html 头部添加一个空图标?

<link rel="shortcut icon"type="image/x-icon" href="data:image/x-icon;,">

你得到 500,可能是因为 /favicon.ico 匹配不同的路由(例如,使用没有必需参数的模板)。

@Daniel B. 回答没问题,(某些)浏览器不会请求 favicon - 完整信息可以在 How to prevent favicon.ico requests? 找到。另外我会添加 ErrorHandler 到服务器 404 的路由。

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/favicon.ico", tornado.web.ErrorHandler, {'status_code': 404}),
        (r".*", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

苹果设备也有apple-*ico请求,你可能也想发送404。