bug(express-engine): relative URLs are not converted to absolute URLs
See original GitHub issue🐞 Bug report
What modules are related to this issue?
- aspnetcore-engine
- builders
- common
- express-engine
- hapi-engine
- module-map-ngfactory-loader
Is this a regression?
I work only with current 9.1.0 version of @nguniversal/express-engine
.
Description
According to the documentation, @nguniversal/express-engine
should take care of converting relative URLs to absolute ones. In this example need converting /api/heroes
to http://localhost:4000/api/heroes
, but it doesn’t seem to be happening.
🔬 Minimal Reproduction
From first terminal:
git clone git@github.com:KostyaTretyak/example-universal-issue.git
cd example-universal-issue
yarn
yarn dev:ssr
From second terminal:
curl -isS localhost:4200/heroes
🔥 Error
This error leads to the send()
function, and if we print this._url
in it, we will see relative URL.
ERROR Error: Uncaught (in promise): Error
Error
at XMLHttpRequest.send (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:165819:19)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:19023:17)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at scheduleTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97401:32)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97463:13)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at subscribeToResult (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:162083:23)
at MergeMapSubscriber._innerSub (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:157273:116)
at resolvePromise (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167629:39)
at resolvePromise (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167581:21)
at /srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167691:21
at ZoneDelegate../node_modules/zone.js/dist/zone-node.js.ZoneDelegate.invokeTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167218:35)
at Object.onInvokeTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:85919:33)
at ZoneDelegate../node_modules/zone.js/dist/zone-node.js.ZoneDelegate.invokeTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167217:40)
at Zone../node_modules/zone.js/dist/zone-node.js.Zone.runTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:166985:51)
at drainMicroTaskQueue (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167398:39)
at ./node_modules/zone.js/dist/zone-node.js.ZoneTask.invokeTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167304:25)
at Server.ZoneTask.invoke (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:167289:52) {
rejection: NetworkError
at XMLHttpRequest.send (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:165819:19)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:19023:17)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at scheduleTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97401:32)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97463:13)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at subscribeToResult (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:162083:23)
at MergeMapSubscriber._innerSub (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:157273:116),
promise: ZoneAwarePromise [Promise] {
__zone_symbol__state: 0,
__zone_symbol__value: NetworkError
at XMLHttpRequest.send (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:165819:19)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:19023:17)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at scheduleTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97401:32)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97463:13)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at subscribeToResult (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:162083:23)
at MergeMapSubscriber._innerSub (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:157273:116)
},
zone: Zone {
_parent: Zone {
_parent: null,
_name: '<root>',
_properties: {},
_zoneDelegate: [ZoneDelegate]
},
_name: 'angular',
_properties: { isAngularZone: true, maybeDelayChangeDetection: false },
_zoneDelegate: ZoneDelegate {
_taskCounts: [Object],
zone: [Circular],
_parentDelegate: [ZoneDelegate],
_forkZS: null,
_forkDlgt: null,
_forkCurrZone: null,
_interceptZS: null,
_interceptDlgt: null,
_interceptCurrZone: null,
_invokeZS: [Object],
_invokeDlgt: [ZoneDelegate],
_invokeCurrZone: [Circular],
_handleErrorZS: [Object],
_handleErrorDlgt: [ZoneDelegate],
_handleErrorCurrZone: [Circular],
_scheduleTaskZS: [Object],
_scheduleTaskDlgt: [ZoneDelegate],
_scheduleTaskCurrZone: [Circular],
_invokeTaskZS: [Object],
_invokeTaskDlgt: [ZoneDelegate],
_invokeTaskCurrZone: [Circular],
_cancelTaskZS: [Object],
_cancelTaskDlgt: [ZoneDelegate],
_cancelTaskCurrZone: [Circular],
_hasTaskZS: [Object],
_hasTaskDlgt: [ZoneDelegate],
_hasTaskDlgtOwner: [Circular],
_hasTaskCurrZone: [Circular]
}
},
task: ZoneTask {
_zone: Zone {
_parent: [Zone],
_name: 'angular',
_properties: [Object],
_zoneDelegate: [ZoneDelegate]
},
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: ZoneAwarePromise [Promise] {
__zone_symbol__state: 0,
__zone_symbol__value: NetworkError
at XMLHttpRequest.send (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:165819:19)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:19023:17)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at scheduleTask (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97401:32)
at Observable._subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:97463:13)
at Observable._trySubscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:152002:25)
at Observable.subscribe (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:151988:22)
at subscribeToResult (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:162083:23)
at MergeMapSubscriber._innerSub (/srv/git/angular/test-universal-issue/dist/test-universal-issue/server/main.js:157273:116)
},
scheduleFn: undefined,
cancelFn: undefined,
callback: [Function],
invoke: [Function]
}
}
🌍 Environment
Angular CLI: 9.1.5
Node: 12.16.3
OS: linux x64
Angular: 9.1.6
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router
Ivy Workspace: Yes
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.901.5
@angular-devkit/build-angular 0.901.5
@angular-devkit/build-optimizer 0.901.5
@angular-devkit/build-webpack 0.901.5
@angular-devkit/core 9.1.5
@angular-devkit/schematics 9.1.5
@angular/cli 9.1.5
@ngtools/webpack 9.1.5
@nguniversal/builders 9.1.0
@nguniversal/common 9.1.0
@nguniversal/express-engine 9.1.0
@schematics/angular 9.1.5
@schematics/update 0.901.5
rxjs 6.5.5
typescript 3.8.3
webpack 4.42.0
Issue Analytics
- State:
- Created 3 years ago
- Comments:6
Top Results From Across the Web
bug(express-engine): relative URLs are not converted to ...
According to the documentation, @nguniversal/express-engine should take care of converting relative URLs to absolute ones. In this example need ...
Read more >Changing Absolute URLs to Relative
I'm working on updating a site from EE2 to EE6, and I've figured out how to do this … but one problem I...
Read more >Convert given relative urls to absolute urls
I need to convert few given relative urls in the given html text to absolute urls. The html text would be mixed with...
Read more >Server-side rendering (SSR) with Angular Universal
This means that the URLs must be somehow converted to absolute when running on the server and be left relative when running in...
Read more >Was asked during a lecture today if relative or absolute ...
Absolute URLs offer no advantage over root relative URLs, but of course they ... tools like HTTrack will automatically convert absolute paths to...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Thanks @alan-agius4 that’s a good news. No fix for v9 ?
This issue has been automatically locked due to inactivity. Please file a new issue if you are encountering a similar or related problem.
Read more about our automatic conversation locking policy.
This action has been performed automatically by a bot.