【问题标题】:Trying to locate 404 Error running python-flask with bootstrap尝试使用引导程序运行 python-flask 定位 404 错误
【发布时间】:2015-06-20 17:58:58
【问题描述】:

我正在使用 Flask、Jinja2 和 Bootstrap 构建一个网页应用程序。运行应用程序时出现此错误:

* Running on http://localhost:53293/ (Press CTRL+C to quit)
127.0.0.1 - - [20/Jun/2015 19:33:56] "GET / HTTP/1.1" 500 -
127.0.0.1 - - [20/Jun/2015 19:33:56] "GET /favicon.ico HTTP/1.1" 404 -

该应用基于 Visual Studio 2015rc python 模板Flask Web Project 运行良好。

我的更改都没有包含网站图标,我搜索了整个项目,包括 favicon, icon, .ico 的外部文件,但一无所获。

有人知道这个错误是如何引起的,或者如何找到请求网站图标的代码吗?

【问题讨论】:

    标签: python python-3.x twitter-bootstrap-3 flask


    【解决方案1】:

    浏览器总是试图通过在标准位置/favicon.ico 中查找网站图标。你在这里没有做错任何事情。

    如果您愿意,当然可以在该位置包含服务文件。

    【讨论】:

    • 使用此代码工作:import os from flask import send_from_directory @app.route('/favicon.ico') def favicon(): return send_from_directory(os.path.join(app.root_path, 'static'), 'favicon.ico', mimetype='image/vnd.microsoft.icon') from Flask
    【解决方案2】:

    在 static/images 文件夹中添加一个图标以用作您最喜欢的图标(本例中为 my_favicon.png)。

    选项 1(简单并解决问题)。添加到您的路线:

    from flask import (url_for, current_app as app)
    
    # favicon
    @app.route('/favicon.ico')
    def favicon():
        return url_for('static', filename='/images/my_favicon.png')
    

    选项 2:(更一般地说,使用 flask docs 中建议的解决方案,使用 send_from_directory,正如 Niels 所建议的那样。

    注意:如果您想实际提供图标并将其显示在浏览器选项卡中,请将以下内容添加到您的基本模板中:

    <link rel="shortcut icon" href="{{ url_for('static', filename='images/my_favicon.png') }}">
    

    【讨论】:

    • Niels 上面给出的 sn-p 更加一致(如果文件是 png,则路径也应该为 png 提供服务)。总的来说,url 路由应该足够泛化以提供静态内容。避免只为单个文件专用一个。
    猜你喜欢
    • 2021-06-03
    • 2022-01-26
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多