From cd8b4e09df531ff11aa5cd914e52071a4a754f3d Mon Sep 17 00:00:00 2001 From: Garrett Beatty Date: Thu, 23 Apr 2026 11:19:19 -0400 Subject: [PATCH 1/2] Fix static assets when running in non prod mode --- .../fix-static-assets-non-production-env.json | 11 ++++++++ .../Processes/TestToolProcess.cs | 25 +++++++++---------- 2 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 .autover/changes/fix-static-assets-non-production-env.json diff --git a/.autover/changes/fix-static-assets-non-production-env.json b/.autover/changes/fix-static-assets-non-production-env.json new file mode 100644 index 000000000..60de53a47 --- /dev/null +++ b/.autover/changes/fix-static-assets-non-production-env.json @@ -0,0 +1,11 @@ +{ + "Projects": [ + { + "Name": "Amazon.Lambda.TestTool", + "Type": "Patch", + "ChangelogMessages": [ + "Fixed static assets (CSS, JS, BlazorMonaco) failing to load when ASPNETCORE_ENVIRONMENT or DOTNET_ENVIRONMENT is set to a non-Production value by always serving static files from the tool's install directory." + ] + } + ] +} diff --git a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Processes/TestToolProcess.cs b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Processes/TestToolProcess.cs index 61a0a8aa5..5da9d349b 100644 --- a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Processes/TestToolProcess.cs +++ b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Processes/TestToolProcess.cs @@ -60,10 +60,8 @@ public static TestToolProcess Startup(RunCommandSettings settings, CancellationT builder.Services.AddHttpContextAccessor(); var wwwrootPath = Path.Combine(AppContext.BaseDirectory, "wwwroot"); - if (builder.Environment.IsProduction()) - { - builder.Services.AddSingleton(new PhysicalFileProvider(wwwrootPath)); - } + var wwwrootFileProvider = new PhysicalFileProvider(wwwrootPath); + builder.Services.AddSingleton(wwwrootFileProvider); builder.Services.AddSingleton(); var serviceHttp = $"http://{settings.LambdaEmulatorHost}:{settings.LambdaEmulatorPort}"; @@ -87,20 +85,21 @@ public static TestToolProcess Startup(RunCommandSettings settings, CancellationT var app = builder.Build(); - if (app.Environment.IsProduction()) - { - app.UseStaticFiles(new StaticFileOptions - { - FileProvider = new PhysicalFileProvider(wwwrootPath) - }); - } - else + if (!app.Environment.IsProduction()) { // nosemgrep: csharp.lang.security.stacktrace-disclosure.stacktrace-disclosure app.UseDeveloperExceptionPage(); - app.UseStaticFiles(); } + // Always use the explicit file provider to serve static files from the tool's install + // directory. Without this, non-Production environments attempt to use the static web + // assets manifest which contains absolute paths from the build machine and will fail + // when running as an installed global tool on a different machine. + app.UseStaticFiles(new StaticFileOptions + { + FileProvider = wwwrootFileProvider + }); + app.UseAntiforgery(); app.MapRazorComponents() From b559dd5e762d6b231e1be4639688a9c83acc8255 Mon Sep 17 00:00:00 2001 From: Garrett Beatty Date: Thu, 23 Apr 2026 11:56:51 -0400 Subject: [PATCH 2/2] fix unit tests --- .../Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj index 9711bce5d..af6077d95 100644 --- a/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj +++ b/Tools/LambdaTestTool-v2/src/Amazon.Lambda.TestTool/Amazon.Lambda.TestTool.csproj @@ -75,4 +75,13 @@ + + + + + + PreserveNewest + + +