Restrict SSR to paths in the sitemap

Because Angular SSR is not very efficient, after discussion with
the Google Scholar team we realized a compromise would be to only
use SSR for pages in the DSpace sitemap (and the home page).
This commit is contained in:
Alan Orth
2025-01-22 11:02:35 +03:00
parent b11543c3a5
commit b839252ed7
6 changed files with 11 additions and 1 deletions

View File

@@ -23,6 +23,8 @@ ssr:
# Determining which styles are critical is a relatively expensive operation; this option is
# disabled (false) by default to boost server performance at the expense of loading smoothness.
inlineCriticalCss: false
# Path prefixes to enable SSR for. By default these are limited to paths of primary DSpace objects.
paths: [ '/home', '/items/', '/entities/', '/collections/', '/communities/', '/bitstream/', '/bitstreams/', '/handle/' ]
# The REST API server settings
# NOTE: these settings define which (publicly available) REST API to use. They are usually

View File

@@ -238,7 +238,7 @@ export function app() {
* The callback function to serve server side angular
*/
function ngApp(req, res) {
if (environment.universal.preboot) {
if (environment.universal.preboot && req.method === 'GET' && (req.path === '/' || environment.universal.paths.some(pathPrefix => req.path.startsWith(pathPrefix)))) {
// Render the page to user via SSR (server side rendering)
serverSideRender(req, res);
} else {

View File

@@ -13,4 +13,9 @@ export interface UniversalConfig extends Config {
* loading smoothness.
*/
inlineCriticalCss?: boolean;
/**
* Paths to enable SSR for. Defaults to the home page and paths in the sitemap.
*/
paths: Array<string>;
}

View File

@@ -9,5 +9,6 @@ export const environment: Partial<BuildConfig> = {
async: true,
time: false,
inlineCriticalCss: false,
paths: [ '/home', '/items/', '/entities/', '/collections/', '/communities/', '/bitstream/', '/bitstreams/', '/handle/' ],
}
};

View File

@@ -12,6 +12,7 @@ export const environment: BuildConfig = {
async: true,
time: false,
inlineCriticalCss: false,
paths: [ '/home', '/items/', '/entities/', '/collections/', '/communities/', '/bitstream/', '/bitstreams/', '/handle/' ],
},
// Angular Universal server settings.

View File

@@ -14,6 +14,7 @@ export const environment: Partial<BuildConfig> = {
async: true,
time: false,
inlineCriticalCss: false,
paths: [ '/home', '/items/', '/entities/', '/collections/', '/communities/', '/bitstream/', '/bitstreams/', '/handle/' ],
}
};