- res.sendFile(embedPath)
- }
-)
-clientsRouter.use(
- '/videos/test-embed',
- (req: express.Request, res: express.Response) => res.sendFile(testEmbedPath)
-)
-
-// Static HTML/CSS/JS client files
-
-const staticClientFiles = [
- 'manifest.webmanifest',
- 'ngsw-worker.js',
- 'ngsw.json'
+
+ // Don't cache HTML file since it's an index to the immutable JS/CSS files
+ res.setHeader('Cache-Control', 'public, max-age=0')
+
+ next()
+ },
+
+ asyncMiddleware(generateEmbedHtmlPage)
+]
+
+clientsRouter.use('/videos/embed', ...embedMiddlewares)
+clientsRouter.use('/video-playlists/embed', ...embedMiddlewares)
+
+const testEmbedController = (req: express.Request, res: express.Response) => res.sendFile(testEmbedPath)
+
+clientsRouter.use('/videos/test-embed', testEmbedController)
+clientsRouter.use('/video-playlists/test-embed', testEmbedController)
+
+// Dynamic PWA manifest
+clientsRouter.get('/manifest.webmanifest', asyncMiddleware(generateManifest))
+
+// Static client overrides
+// Must be consistent with static client overrides redirections in /support/nginx/peertube
+const staticClientOverrides = [
+ 'assets/images/logo.svg',
+ 'assets/images/favicon.png',
+ 'assets/images/icons/icon-36x36.png',
+ 'assets/images/icons/icon-48x48.png',
+ 'assets/images/icons/icon-72x72.png',
+ 'assets/images/icons/icon-96x96.png',
+ 'assets/images/icons/icon-144x144.png',
+ 'assets/images/icons/icon-192x192.png',
+ 'assets/images/icons/icon-512x512.png'