summaryrefslogtreecommitdiff
path: root/src/SomhairlesDream.Server/Program.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SomhairlesDream.Server/Program.fs')
-rw-r--r--src/SomhairlesDream.Server/Program.fs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/SomhairlesDream.Server/Program.fs b/src/SomhairlesDream.Server/Program.fs
index 53cfef6..b2ea8a8 100644
--- a/src/SomhairlesDream.Server/Program.fs
+++ b/src/SomhairlesDream.Server/Program.fs
@@ -6,6 +6,7 @@ open System.Threading.Tasks
open Microsoft.AspNetCore.Builder
open Microsoft.AspNetCore.Hosting
open Microsoft.AspNetCore.Http
+open Microsoft.AspNetCore.StaticFiles
open Microsoft.Extensions.FileProviders
open Microsoft.Extensions.Hosting
open SomhairlesDream.Server
@@ -57,7 +58,17 @@ let events (context: HttpContext) : Task =
} :> Task)
app.UseDefaultFiles() |> ignore
-app.UseStaticFiles() |> ignore
+
+// Serve geometry and decoder binaries with correct MIME types: ASP.NET's
+// default map has no entry for .glb/.wasm, so those requests would 404.
+let staticFileOptions =
+ let provider = FileExtensionContentTypeProvider()
+ provider.Mappings.[".glb"] <- "model/gltf-binary"
+ provider.Mappings.[".gltf"] <- "model/gltf+json"
+ provider.Mappings.[".wasm"] <- "application/wasm"
+ StaticFileOptions(ContentTypeProvider = provider)
+
+app.UseStaticFiles(staticFileOptions) |> ignore
app.MapGet("/health", Func<IResult>(fun () -> Results.Ok({| status = "ok" |}))) |> ignore