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.
This commit is contained in:
2025-10-20 23:06:36 -04:00
parent 4d4dbba010
commit f77161da17

View File

@@ -1,5 +1,5 @@
from typing import Dict, List, Any from typing import Dict, List, Any
from app.models import ProductModel, ARFieldModel from app.models import ProductModel, ARFieldModel, SettingsModel
from flask import request from flask import request
class ProductService: class ProductService:
@@ -20,8 +20,9 @@ class ProductService:
if field_types.get(field['fieldName']) == 'IMAGE_URI' and field['value']: if field_types.get(field['fieldName']) == 'IMAGE_URI' and field['value']:
# If it's already an absolute URL, leave it as is # If it's already an absolute URL, leave it as is
if not field['value'].startswith('http'): if not field['value'].startswith('http'):
# Build absolute URL using request host with tenant # Build absolute URL using configured server URL
field['value'] = f"{request.url_root.rstrip('/')}/{tenant_id}{field['value']}" server_url = SettingsModel.get_server_url()
field['value'] = f"{server_url}/{tenant_id}{field['value']}"
filtered_fields.append(field) filtered_fields.append(field)
return filtered_fields return filtered_fields