From be3df1780bfb0a54b371ad2599891c063d161b7e Mon Sep 17 00:00:00 2001 From: Kirill Date: Wed, 8 Apr 2026 19:04:35 +0300 Subject: [PATCH] feat(assets): Added new blueprint for sended images on api --- api/assets.py | 16 ++++++++++++++++ app.py | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 api/assets.py diff --git a/api/assets.py b/api/assets.py new file mode 100644 index 0000000..89ff5c2 --- /dev/null +++ b/api/assets.py @@ -0,0 +1,16 @@ +import os +from flask import Blueprint, send_from_directory, current_app, abort + +assets_bp = Blueprint('assets', __name__) + +# Маршрут поддерживает вложенные пути, например: /image/categories/main0.png +@assets_bp.route('/image/') +def serve_image(filename): + # Определяем абсолютный путь к папке assets относительно корня проекта + assets_path = os.path.join(current_app.root_path, 'assets') + + # Проверяем наличие файла перед отправкой (опционально, send_from_directory сделает это сам) + if not os.path.exists(os.path.join(assets_path, filename)): + abort(404) + + return send_from_directory(assets_path, filename) diff --git a/app.py b/app.py index 49174fd..108e980 100644 --- a/app.py +++ b/app.py @@ -7,6 +7,7 @@ from utils.loadDotENV import initializeENV from api.categories import api_category from api.product import api_product from api.email import api_email +from api.assets import assets_bp from werkzeug.middleware.proxy_fix import ProxyFix # Инициализация @@ -22,6 +23,7 @@ CORS(app) app.register_blueprint(api_category) app.register_blueprint(api_product) app.register_blueprint(api_email) +app.register_blueprint(assets_bp) app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1, x_host=1)