mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
[DURACOM-344] refactor solution to avoid double slashes
This commit is contained in:
@@ -25,18 +25,21 @@ ssr:
|
|||||||
inlineCriticalCss: false
|
inlineCriticalCss: false
|
||||||
# Patterns to be run as regexes against the path of the page to check if SSR is allowed.
|
# Patterns to be run as regexes against the path of the page to check if SSR is allowed.
|
||||||
# If the path match any of the regexes it will be served directly in CSR.
|
# If the path match any of the regexes it will be served directly in CSR.
|
||||||
# By default, excludes community and collection browse, global browse, global search, community list, and statistics.
|
# By default, excludes community and collection browse, global browse, global search, community list, statistics and various administrative tools.
|
||||||
excludePathPatterns:
|
excludePathPatterns:
|
||||||
- /^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i
|
- pattern: "^/communities/[a-f0-9-]{36}/browse(/.*)?$",
|
||||||
- /^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i
|
flag: "i"
|
||||||
- /^\/browse\//
|
- pattern: "^/collections/[a-f0-9-]{36}/browse(/.*)?$"
|
||||||
- /^\/search$/
|
flag: "i"
|
||||||
- /^\/community-list$/
|
- pattern: "^/browse/"
|
||||||
- /^\/statistics\//
|
- pattern: "^/search$"
|
||||||
- /^\/admin$/
|
- pattern: "^/community-list$"
|
||||||
- /^\/processes$/
|
- pattern: "^/admin/"
|
||||||
- /^\/notifications$/
|
- pattern: "^/processes/?"
|
||||||
- /^\/health$/
|
- pattern: "^/notifications/"
|
||||||
|
- pattern: "^/statistics/?"
|
||||||
|
- pattern: "^/access-control/"
|
||||||
|
- pattern: "^/health$"
|
||||||
|
|
||||||
# Whether to enable rendering of Search component on SSR.
|
# Whether to enable rendering of Search component on SSR.
|
||||||
# If set to true the component will be included in the HTML returned from the server side rendering.
|
# If set to true the component will be included in the HTML returned from the server side rendering.
|
||||||
|
@@ -58,6 +58,7 @@ import {
|
|||||||
REQUEST,
|
REQUEST,
|
||||||
RESPONSE,
|
RESPONSE,
|
||||||
} from './src/express.tokens';
|
} from './src/express.tokens';
|
||||||
|
import { SsrExcludePatterns } from "./src/config/ssr-config.interface";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set path for the browser application's dist folder
|
* Set path for the browser application's dist folder
|
||||||
@@ -633,9 +634,11 @@ function start() {
|
|||||||
* @param path
|
* @param path
|
||||||
* @param excludePathPattern
|
* @param excludePathPattern
|
||||||
*/
|
*/
|
||||||
function isExcludedFromSsr(path: string, excludePathPattern: (string | RegExp)[]): boolean {
|
function isExcludedFromSsr(path: string, excludePathPattern: SsrExcludePatterns[]): boolean {
|
||||||
return excludePathPattern.some((pattern) => {
|
const patterns = excludePathPattern.map(p =>
|
||||||
const regex = new RegExp(pattern);
|
new RegExp(p.pattern, p.flag || '')
|
||||||
|
);
|
||||||
|
return patterns.some((regex) => {
|
||||||
return regex.test(path)
|
return regex.test(path)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
import { Config } from './config.interface';
|
import { Config } from './config.interface';
|
||||||
|
|
||||||
|
export interface SsrExcludePatterns {
|
||||||
|
pattern: string | RegExp;
|
||||||
|
flag?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface SSRConfig extends Config {
|
export interface SSRConfig extends Config {
|
||||||
/**
|
/**
|
||||||
* A boolean flag indicating whether the SSR configuration is enabled
|
* A boolean flag indicating whether the SSR configuration is enabled
|
||||||
@@ -41,7 +46,7 @@ export interface SSRConfig extends Config {
|
|||||||
/**
|
/**
|
||||||
* Patterns to be used as regexes to match url's path and check if SSR is disabled for it.
|
* Patterns to be used as regexes to match url's path and check if SSR is disabled for it.
|
||||||
*/
|
*/
|
||||||
excludePathPatterns: (string | RegExp)[];
|
excludePathPatterns: SsrExcludePatterns[];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether to enable rendering of search component on SSR
|
* Whether to enable rendering of search component on SSR
|
||||||
|
@@ -11,16 +11,23 @@ export const environment: Partial<BuildConfig> = {
|
|||||||
transferState: true,
|
transferState: true,
|
||||||
replaceRestUrl: true,
|
replaceRestUrl: true,
|
||||||
excludePathPatterns: [
|
excludePathPatterns: [
|
||||||
/^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
{
|
||||||
/^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
pattern: '^/communities/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/browse\//,
|
flag: 'i',
|
||||||
/^\/search$/,
|
},
|
||||||
/^\/community-list$/,
|
{
|
||||||
/^\/statistics\//,
|
pattern: '^/collections/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/admin$/,
|
flag: 'i',
|
||||||
/^\/processes$/,
|
},
|
||||||
/^\/notifications$/,
|
{ pattern: '^/browse/' },
|
||||||
/^\/health$/,
|
{ pattern: '^/search' },
|
||||||
|
{ pattern: '^/community-list$' },
|
||||||
|
{ pattern: '^/statistics/?' },
|
||||||
|
{ pattern: '^/admin/' },
|
||||||
|
{ pattern: '^/processes/?' },
|
||||||
|
{ pattern: '^/notifications/' },
|
||||||
|
{ pattern: '^/access-control/' },
|
||||||
|
{ pattern: '^/health$' },
|
||||||
],
|
],
|
||||||
enableSearchComponent: false,
|
enableSearchComponent: false,
|
||||||
enableBrowseComponent: false,
|
enableBrowseComponent: false,
|
||||||
|
@@ -15,16 +15,23 @@ export const environment: BuildConfig = {
|
|||||||
transferState: true,
|
transferState: true,
|
||||||
replaceRestUrl: false,
|
replaceRestUrl: false,
|
||||||
excludePathPatterns: [
|
excludePathPatterns: [
|
||||||
/^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
{
|
||||||
/^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
pattern: '^/communities/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/browse\//,
|
flag: 'i',
|
||||||
/^\/search$/,
|
},
|
||||||
/^\/community-list$/,
|
{
|
||||||
/^\/statistics\//,
|
pattern: '^/collections/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/admin$/,
|
flag: 'i',
|
||||||
/^\/processes$/,
|
},
|
||||||
/^\/notifications$/,
|
{ pattern: '^/browse/' },
|
||||||
/^\/health$/,
|
{ pattern: '^/search' },
|
||||||
|
{ pattern: '^/community-list$' },
|
||||||
|
{ pattern: '^/statistics/?' },
|
||||||
|
{ pattern: '^/admin/' },
|
||||||
|
{ pattern: '^/processes/?' },
|
||||||
|
{ pattern: '^/notifications/' },
|
||||||
|
{ pattern: '^/access-control/' },
|
||||||
|
{ pattern: '^/health$' },
|
||||||
],
|
],
|
||||||
enableSearchComponent: false,
|
enableSearchComponent: false,
|
||||||
enableBrowseComponent: false,
|
enableBrowseComponent: false,
|
||||||
|
@@ -16,16 +16,23 @@ export const environment: Partial<BuildConfig> = {
|
|||||||
transferState: true,
|
transferState: true,
|
||||||
replaceRestUrl: false,
|
replaceRestUrl: false,
|
||||||
excludePathPatterns: [
|
excludePathPatterns: [
|
||||||
/^\/communities\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
{
|
||||||
/^\/collections\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/browse(\/.*)?$/i,
|
pattern: '^/communities/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/browse\//,
|
flag: 'i',
|
||||||
/^\/search$/,
|
},
|
||||||
/^\/community-list$/,
|
{
|
||||||
/^\/statistics\//,
|
pattern: '^/collections/[a-f0-9-]{36}/browse(/.*)?$',
|
||||||
/^\/admin$/,
|
flag: 'i',
|
||||||
/^\/processes$/,
|
},
|
||||||
/^\/notifications$/,
|
{ pattern: '^/browse/' },
|
||||||
/^\/health$/,
|
{ pattern: '^/search' },
|
||||||
|
{ pattern: '^/community-list$' },
|
||||||
|
{ pattern: '^/statistics/?' },
|
||||||
|
{ pattern: '^/admin/' },
|
||||||
|
{ pattern: '^/processes/?' },
|
||||||
|
{ pattern: '^/notifications/' },
|
||||||
|
{ pattern: '^/access-control/' },
|
||||||
|
{ pattern: '^/health$' },
|
||||||
],
|
],
|
||||||
enableSearchComponent: false,
|
enableSearchComponent: false,
|
||||||
enableBrowseComponent: false,
|
enableBrowseComponent: false,
|
||||||
|
Reference in New Issue
Block a user