无法提供静态文件

Cannot Serve Static Files

目前,在我的静态文件服务路由上向我的 API 发送邮递员请求会给我一个 404 错误,尽管我仔细检查了我是否从正确的路由获取。在添加 SocketIO 之前,服务器在服务文件方面运行良好。不幸的是,即使我删除了 flask-socketio 中间件,我也无法获取文件。目前,我已经很久没有接触这条路线了,所以我不确定到底发生了什么。

以前,我在启动 flask 应用程序对象时没有设置 static_url_path 和 static_folder 选项。我只是在阅读了其他一些答案后添加了它们,但无论它们是否存在,我都会收到 404。

我所有的其他路线都按预期工作。

UPLOAD_FOLDER = '/profile_pictures'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
app = flask.Flask(__name__, static_url_path='/', static_folder="/profile_pictures")

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

UPLOAD_FOLDER = './profile_pictures'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}

#unrelated code

@app.route('/profile_pictures/<filename>', methods=['GET'])
@cross_origin(supports_credentials=True)
def get_profile_picture(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],filename,  as_attachment=True)

非常感谢任何关于可能是什么问题的见解。

静态文件不需要 static_url_path='/', static_folder="/profile_pictures"route

选择您喜欢使用的一个并删除另一个。

或更改

static_url_path='/', static_folder="/profile_pictures"

进入

static_url_path='/static', static_folder="/profile_pictures"

静态文件都可以访问

HOST:PORT/static/<filename>HOST:PORT/profile_pictures/<filename>.

static_folder 基本上用于 cssjsimages 等静态文件。 route 供用户直接下载文件。

最后我将 UPLOAD_FOLDER 目录设置为

UPLOAD_FOLDER = '/profile_pictures'

它应该在的地方

UPLOAD_FOLDER = 'profile_pictures'

感谢@Alexander 的回答:)