From f77161da175eee50b1e8a637bad430197f9633d8 Mon Sep 17 00:00:00 2001 From: Matt Hills Date: Mon, 20 Oct 2025 23:06:36 -0400 Subject: [PATCH] Fix image URLs to work behind nginx proxy Use configured server URL instead of request.url_root for building absolute image URLs in API responses. This ensures Knox Capture receives correct public URLs when the application is behind an nginx proxy. --- src/app/services/product_service.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/app/services/product_service.py b/src/app/services/product_service.py index 9a40ea8..66d0cd1 100644 --- a/src/app/services/product_service.py +++ b/src/app/services/product_service.py @@ -1,5 +1,5 @@ from typing import Dict, List, Any -from app.models import ProductModel, ARFieldModel +from app.models import ProductModel, ARFieldModel, SettingsModel from flask import request class ProductService: @@ -20,8 +20,9 @@ class ProductService: if field_types.get(field['fieldName']) == 'IMAGE_URI' and field['value']: # If it's already an absolute URL, leave it as is if not field['value'].startswith('http'): - # Build absolute URL using request host with tenant - field['value'] = f"{request.url_root.rstrip('/')}/{tenant_id}{field['value']}" + # Build absolute URL using configured server URL + server_url = SettingsModel.get_server_url() + field['value'] = f"{server_url}/{tenant_id}{field['value']}" filtered_fields.append(field) return filtered_fields