diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Program.cs b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Program.cs index 96e7846f..8fe5acf8 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Program.cs +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Program.cs @@ -53,8 +53,21 @@ try builder.Services.AddControllers(); builder.Services.AddHttpClient(); - // Named HttpClient for internal API calls (same domain, uses relative paths) - builder.Services.AddHttpClient("EnvelopeGenerator.Server"); + // HttpContextAccessor needed for SSR HttpClient configuration + builder.Services.AddHttpContextAccessor(); + + // Named HttpClient for internal API calls + builder.Services.AddHttpClient("EnvelopeGenerator.Server", (sp, client) => + { + var httpContextAccessor = sp.GetRequiredService(); + var request = httpContextAccessor.HttpContext?.Request; + + if (request != null) + { + // Set base address to current host for SSR scenarios + client.BaseAddress = new Uri($"{request.Scheme}://{request.Host}"); + } + }); // CORS Policy var allowedOrigins = config.GetSection("AllowedOrigins").Get() ?? @@ -290,9 +303,6 @@ try .AddEnvelopeGeneratorServices(config); #pragma warning restore CS0618 - // HttpClient for server-side components (e.g., MainLayout with FontLoader) - builder.Services.AddHttpContextAccessor(); - // Business Services (Server specific) builder.Services.AddScoped(); builder.Services.AddScoped();