diff --git a/components/log-viewer-webui/server/settings.json b/components/log-viewer-webui/server/settings.json index ac3e244fa3..4e615a3cf2 100644 --- a/components/log-viewer-webui/server/settings.json +++ b/components/log-viewer-webui/server/settings.json @@ -10,9 +10,9 @@ "MongoDbStreamFilesCollectionName": "stream-files", "MongoDbSearchResultsMetadataCollectionName": "results-metadata", - "ClientDir": "../../client/dist", - "LogViewerDir": "../../yscope-log-viewer/dist", - "StreamFilesDir": "../../../../build/clp-package/var/data/streams", + "ClientDir": "../client/dist", + "LogViewerDir": "../yscope-log-viewer/dist", + "StreamFilesDir": "../../../build/clp-package/var/data/streams", "StreamTargetUncompressedSize": 134217728, "StreamFilesS3Region": null, "StreamFilesS3PathPrefix": null, diff --git a/components/log-viewer-webui/server/src/routes/static.ts b/components/log-viewer-webui/server/src/routes/static.ts index 2c7ed4b6f8..03a7ea303c 100644 --- a/components/log-viewer-webui/server/src/routes/static.ts +++ b/components/log-viewer-webui/server/src/routes/static.ts @@ -16,7 +16,7 @@ import settings from "../../settings.json" with {type: "json"}; const routes: FastifyPluginAsync = async (fastify) => { const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); - const rootDirname = path.resolve(dirname, "../.."); + const rootDirname = path.resolve(dirname, "../../../.."); let streamFilesDir = settings.StreamFilesDir; if (false === path.isAbsolute(streamFilesDir)) { @@ -25,6 +25,7 @@ const routes: FastifyPluginAsync = async (fastify) => { await fastify.register(fastifyStatic, { prefix: "/streams", root: streamFilesDir, + decorateReply: false, }); let logViewerDir = settings.LogViewerDir; @@ -48,12 +49,13 @@ const routes: FastifyPluginAsync = async (fastify) => { await fastify.register(fastifyStatic, { prefix: "/", root: clientDir, - decorateReply: false, + decorateReply: true, wildcard: false, }); - fastify.get("/streamFile", (_, reply) => { - reply.sendFile("index.html", clientDir); + // Serve index.html for all unmatched routes in the React Single Page Application (SPA). + fastify.get("/*", (_, reply) => { + reply.sendFile("index.html"); }); } };