вопроса here и here не помогает :(питон-смерч DonT матча «/favicon.ico»
Я пытаюсь обработчик «/favicon.ico», но он не работает, как expected.It-х проводной ...
Мой обработчик выглядит следующим образом:
handlers = [
(r'^/$', RootHandler), # this works fine
(r'^/favicon\.ico$', IconHandler),
# other handlers
]
Мои IconHandler
выглядит следующим образом:
class IconHandler(tornado.web.RequestHandler):
def get(self):
self.set_header("Content-Type", "image/vnd.microsoft.icon")
with open(icon_path, 'rb') as f:
self.write(f.read())
return self.flush()
http://127.0.0.1:8000/favicon.ico
Но дает мне ошибку 404:
Traceback (most recent call last):
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/web.py", line 1334, in _execute
result = yield result
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/gen.py", line 628, in run
value = future.result()
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/concurrent.py", line 109, in result
raise_exc_info(self._exc_info)
File "<string>", line 3, in raise_exc_info
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/gen.py", line 175, in wrapper
yielded = next(result)
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/web.py", line 2110, in get
self.root, absolute_path)
File "/home/tyler/.pyenv/versions/3.4.2/lib/python3.4/site-packages/tornado/web.py", line 2286, in validate_absolute_path
raise HTTPError(404)
tornado.web.HTTPError: HTTP 404: Not Found
Так что я изменил шаблон соответствия URL и сделал несколько тестов:
handler pattern | url | status
-----------------------|---------------------------------------|--------
r'^/favicon\.ico$' | http://127.0.0.1:8000/favicon.ico | 404Error
r'/favicon\.ico' | http://127.0.0.1:8000/favicon.ico | 404Error
r'/favicon.ico' | http://127.0.0.1:8000/favicon.ico | 404Error
r'^/sub/favicon\.ico$' | http://127.0.0.1:8000/sub/favicon.ico | Works!
r'/sub/favicon\.ico' | http://127.0.0.1:8000/sub/favicon.ico | Works!
r'/sub/favicon.ico' | http://127.0.0.1:8000/sub/favicon.ico | Works!
ПОМОГИТЕ. Я не могу понять :(
питон: 3.4.2
смерч: 4.0.2
Ubuntu:. 14,10
YEAH, который работает !. И еще один способ - поместить «favicon.ico» непосредственно под «static_path», тогда торнадо автоматически обработает его. Ты спас мой день :) –