question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

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:closed
  • Created 3 years ago
  • Comments:6

github_iconTop GitHub Comments

2reactions
jedjebaricommented, May 22, 2020

Thanks @alan-agius4 that’s a good news. No fix for v9 ?

0reactions
angular-automatic-lock-bot[bot]commented, Jun 22, 2020

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.

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found