Serve Hydrogen assets from `/hydrogen-assets/` sub-directory for easier targeting of cache rules (#172)

Fix https://github.com/matrix-org/matrix-public-archive/issues/160
This commit is contained in:
Eric Eastwood 2023-04-19 14:44:12 -05:00 committed by GitHub
parent 17a39ab8db
commit 27afaea8ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 10 additions and 7 deletions

View File

@ -14,7 +14,7 @@ assert(basePath);
// `/r/#room-alias:server/date/2022/10/27` -> `/r/room-alias:server/date/2022/10/27` // `/r/#room-alias:server/date/2022/10/27` -> `/r/room-alias:server/date/2022/10/27`
function clientSideRoomAliasHashRedirectRoute(req, res) { function clientSideRoomAliasHashRedirectRoute(req, res) {
const cspNonce = res.locals.cspNonce; const cspNonce = res.locals.cspNonce;
const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-styles.css'); const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-assets/hydrogen-styles.css');
const stylesUrl = urlJoin(basePath, '/css/styles.css'); const stylesUrl = urlJoin(basePath, '/css/styles.css');
const jsBundleUrl = urlJoin(basePath, '/js/entry-client-room-alias-hash-redirect.es.js'); const jsBundleUrl = urlJoin(basePath, '/js/entry-client-room-alias-hash-redirect.es.js');

View File

@ -39,12 +39,15 @@ function installRoutes(app) {
// We have to disable no-missing-require lint because it doesn't take into // We have to disable no-missing-require lint because it doesn't take into
// account `package.json`. `exports`, see // account `package.json`. `exports`, see
// https://github.com/mysticatea/eslint-plugin-node/issues/255 // https://github.com/mysticatea/eslint-plugin-node/issues/255
app.use(
'/hydrogen-assets',
// eslint-disable-next-line node/no-missing-require // eslint-disable-next-line node/no-missing-require
app.use(express.static(path.dirname(require.resolve('hydrogen-view-sdk/assets/main.js')))); express.static(path.dirname(require.resolve('hydrogen-view-sdk/assets/main.js')))
);
app.get( app.get(
// This has to be at the root so that the font URL references resolve correctly // This has to be at the root so that the font URL references resolve correctly
'/hydrogen-styles.css', '/hydrogen-assets/hydrogen-styles.css',
asyncHandler(async function (req, res) { asyncHandler(async function (req, res) {
res.set('Content-Type', 'text/css'); res.set('Content-Type', 'text/css');
// We have to disable no-missing-require lint because it doesn't take into // We have to disable no-missing-require lint because it doesn't take into

View File

@ -61,7 +61,7 @@ router.get(
// We index the room directory unless the config says we shouldn't index anything // We index the room directory unless the config says we shouldn't index anything
const shouldIndex = !stopSearchEngineIndexing; const shouldIndex = !stopSearchEngineIndexing;
const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-styles.css'); const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-assets/hydrogen-styles.css');
const stylesUrl = urlJoin(basePath, '/css/styles.css'); const stylesUrl = urlJoin(basePath, '/css/styles.css');
const roomDirectoryStylesUrl = urlJoin(basePath, '/css/room-directory.css'); const roomDirectoryStylesUrl = urlJoin(basePath, '/css/room-directory.css');
const jsBundleUrl = urlJoin(basePath, '/js/entry-client-room-directory.es.js'); const jsBundleUrl = urlJoin(basePath, '/js/entry-client-room-directory.es.js');

View File

@ -865,7 +865,7 @@ router.get(
shouldIndex = roomData?.historyVisibility === `world_readable`; shouldIndex = roomData?.historyVisibility === `world_readable`;
} }
const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-styles.css'); const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-assets/hydrogen-styles.css');
const stylesUrl = urlJoin(basePath, '/css/styles.css'); const stylesUrl = urlJoin(basePath, '/css/styles.css');
const jsBundleUrl = urlJoin(basePath, '/js/entry-client-hydrogen.es.js'); const jsBundleUrl = urlJoin(basePath, '/js/entry-client-hydrogen.es.js');

View File

@ -50,7 +50,7 @@ async function timeoutMiddleware(req, res, next) {
const cspNonce = res.locals.cspNonce; const cspNonce = res.locals.cspNonce;
const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-styles.css'); const hydrogenStylesUrl = urlJoin(basePath, '/hydrogen-assets/hydrogen-styles.css');
const stylesUrl = urlJoin(basePath, '/css/styles.css'); const stylesUrl = urlJoin(basePath, '/css/styles.css');
const pageHtml = ` const pageHtml = `