【问题标题】:Using Flask-HTTPAuth when serving a static folder提供静态文件夹时使用 Flask-HTTPAuth
【发布时间】:2022-01-03 19:26:19
【问题描述】:

我正在使用 Flask 来提供静态文件夹:

from flask import Flask, send_from_directory
from flask_httpauth import HTTPBasicAuth

app = Flask(__name__,
            static_url_path='',
            static_folder='html_files')
...

@app.route('/')
@auth.login_required
def send_html_files():
    return send_from_directory('html_files', 'main.html')

我使用first example in Flask-HTTPAuth docs 为我的网站添加基本身份验证。对我来说,一个普通的用户名和密码就足够了。

问题是当用户直接访问 http://localhost:5000/a/b/c 时没有显示身份验证对话框(它适用于 http://localhost:5000/)

这样做的正确方法是什么?另一方面,又快又脏的方法是什么?

【问题讨论】:

    标签: flask flask-httpauth


    【解决方案1】:

    @app.route('/') 仅匹配您的根路径。

    尝试这样的方法来匹配每条路径:

    @app.route('/<path:filename>')
    @auth.login_required
    def send_html_files(filename):  
        return send_from_directory('html_files', filename)
    

    【讨论】:

    • 只是我自己想出来的,但非常感谢。顺便说一句,我怎样才能将文件名配置为可为空,以便它也可以与 localhost:5000/ 一起使用?
    猜你喜欢
    • 2020-05-10
    • 2019-09-19
    • 2021-05-03
    • 2023-03-06
    • 2014-06-06
    • 1970-01-01
    • 2012-07-14
    • 2015-10-19
    • 2014-02-22
    相关资源
    最近更新 更多