diff --git a/config/config.example.yml b/config/config.example.yml index 76d73a2693..e87ad1f89f 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -17,6 +17,13 @@ ui: # Trust X-FORWARDED-* headers from proxies (default = true) useProxies: true +universal: + # Whether to inline "critical" styles into the server-side rendered HTML. + # Determining which styles are critical is a relatively expensive operation; + # this option can be disabled to boost server performance at the expense of + # loading smoothness. + inlineCriticalCss: true + # The REST API server settings # NOTE: these settings define which (publicly available) REST API to use. They are usually # 'synced' with the 'dspace.server.url' setting in your backend's local.cfg. diff --git a/server.ts b/server.ts index da085f372f..93f3e86876 100644 --- a/server.ts +++ b/server.ts @@ -131,6 +131,7 @@ export function app() { server.engine('html', (_, options, callback) => ngExpressEngine({ bootstrap: ServerAppModule, + inlineCriticalCss: environment.universal.inlineCriticalCss, providers: [ { provide: REQUEST, diff --git a/src/config/universal-config.interface.ts b/src/config/universal-config.interface.ts index c088dcd657..eb89264e37 100644 --- a/src/config/universal-config.interface.ts +++ b/src/config/universal-config.interface.ts @@ -4,4 +4,13 @@ export interface UniversalConfig extends Config { preboot: boolean; async: boolean; time: boolean; + + /** + * Whether to inline "critical" styles into the server-side rendered HTML. + * + * Determining which styles are critical is a relatively expensive operation; + * this option can be disabled to boost server performance at the expense of + * loading smoothness. + */ + inlineCriticalCss?: boolean; } diff --git a/src/environments/environment.production.ts b/src/environments/environment.production.ts index 09b5f19ade..7dd9bd2aa3 100644 --- a/src/environments/environment.production.ts +++ b/src/environments/environment.production.ts @@ -7,6 +7,7 @@ export const environment: Partial = { universal: { preboot: true, async: true, - time: false + time: false, + inlineCriticalCss: true, } }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index dc0e808be0..10f71618e1 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -12,7 +12,8 @@ export const environment: Partial = { universal: { preboot: false, async: true, - time: false + time: false, + inlineCriticalCss: true, } };