tpo*_*eux 7 python favicon web.py
在使用开发服务器运行web.py应用程序时,如何摆脱favicon的404错误?
"HTTP/1.1 GET /" - 200 OK
"HTTP/1.1 GET /favicon.ico" - 404 Not Found
Run Code Online (Sandbox Code Playgroud)
我能找到的关于消除此错误的所有内容都与在Apache配置中指定资源的路径有关.这显然对开发服务器用例没有帮助.有没有办法在urls元组中指定静态资源?您可以在web.py应用程序中定义文档根目录吗?
像Ryan Griggs建议的那样,但是使用/static/favicon.ico作为href.
<html>
<head>
<link rel="icon" type="image/png" href="/static/favicon.ico">
...
Run Code Online (Sandbox Code Playgroud)
web.py dev服务器将所有/static/URL 映射到目录中的static/文件.
web.py API文档引用了“ web.seeother()”函数,该函数生成
“ 303 SEE OTHER”响应,从而将浏览器重定向到其他位置。
(请参阅http://webpy.org/docs/0.3/api#web.application)
这是一种服务器端解决方案,不需要更改html文件中的标头;如果服务器实际上没有处理html文件,则特别有用。
解:
从默认的/favicon.ico映射一个URL路由,并创建一个新类来处理此路由:
# Define API Routes
urls = (
'/', 'index',
'/favicon.ico', 'icon'
)
Run Code Online (Sandbox Code Playgroud)
创建一个包含favicon.ico的(可从网络访问的)静态目录
创建一个新类来处理此文件:
# Process favicon.ico requests
class icon:
def GET(self): raise web.seeother("/static/favicon.ico")
Run Code Online (Sandbox Code Playgroud)
这是显示请求的服务器日志:
<ip#> - [18/Oct/2013 21:54:54] "HTTP/1.1 GET /favicon.ico" - 303 See Other
<ip#> - [18/Oct/2013 21:54:54] "HTTP/1.1 GET /static/favicon.ico" - 200
<ip#> - [18/Oct/2013 22:03:02] "HTTP/1.1 GET /favicon.ico" - 303 See Other
<ip#> - [18/Oct/2013 22:03:03] "HTTP/1.1 GET /static/favicon.ico" - 304 Not Modified
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12418 次 |
| 最近记录: |