Skip to content

Commit a0c4725

Browse files
Update to latest Angular2/angular-universal and use relative URLs in template's HTTP request
1 parent 6a325f8 commit a0c4725

5 files changed

Lines changed: 17 additions & 15 deletions

File tree

src/Microsoft.AspNet.SpaServices/npm/aspnet-prerendering/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "aspnet-prerendering",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "Helpers for server-side rendering of JavaScript applications in ASP.NET projects. Works in conjunction with the Microsoft.AspNet.SpaServices NuGet package.",
55
"main": "index.js",
66
"scripts": {

src/Microsoft.AspNet.SpaServices/npm/aspnet-prerendering/src/Prerendering.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ export interface BootFunc {
1919
}
2020

2121
export interface BootFuncParams {
22-
location: url.Url;
23-
url: string;
24-
absoluteUrl: string;
22+
location: url.Url; // e.g., Location object containing information '/some/path'
23+
origin: string; // e.g., 'https://example.com:1234'
24+
url: string; // e.g., '/some/path'
25+
absoluteUrl: string; // e.g., 'https://example.com:1234/some/path'
2526
domainTasks: Promise<any>;
2627
}
2728

@@ -44,8 +45,10 @@ export function renderToString(callback: RenderToStringCallback, applicationBase
4445
const domainTaskCompletionPromise = new Promise((resolve, reject) => {
4546
domainTaskCompletionPromiseResolve = resolve;
4647
});
48+
const parsedAbsoluteRequestUrl = url.parse(absoluteRequestUrl);
4749
const params: BootFuncParams = {
4850
location: url.parse(requestPathAndQuery),
51+
origin: parsedAbsoluteRequestUrl.protocol + '//' + parsedAbsoluteRequestUrl.host,
4952
url: requestPathAndQuery,
5053
absoluteUrl: absoluteRequestUrl,
5154
domainTasks: domainTaskCompletionPromise

templates/Angular2Spa/ClientApp/boot-server.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@ import 'angular2-universal/polyfills';
22
import * as ngCore from 'angular2/core';
33
import * as ngRouter from 'angular2/router';
44
import * as ngUniversal from 'angular2-universal';
5+
import { BASE_URL, ORIGIN_URL, REQUEST_URL } from 'angular2-universal/common';
56
import { App } from './components/app/app';
67

78
export default function (params: any): Promise<{ html: string, globals?: any }> {
89
const serverBindings = [
9-
ngCore.provide(ngUniversal.BASE_URL, { useValue: params.absoluteUrl }),
10-
ngCore.provide(ngUniversal.REQUEST_URL, { useValue: params.url }),
11-
ngCore.provide(ngRouter.APP_BASE_HREF, { useValue: '/' }),
10+
ngCore.provide(BASE_URL, { useValue: '/' }),
11+
ngCore.provide(ORIGIN_URL, { useValue: params.origin }),
12+
ngCore.provide(REQUEST_URL, { useValue: params.url }),
1213
ngUniversal.NODE_HTTP_PROVIDERS,
1314
ngUniversal.NODE_ROUTER_PROVIDERS
1415
];
15-
16+
1617
return ngUniversal.bootloader({
1718
directives: [App],
1819
providers: serverBindings,

templates/Angular2Spa/ClientApp/components/fetch-data/fetch-data.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@ export class FetchData {
1212
// Workaround for RC1 bug. This can be removed with ASP.NET Core 1.0 RC2.
1313
let isServerSide = typeof window === 'undefined';
1414
let options: any = isServerSide ? { headers: { Connection: 'keep-alive' } } : null;
15-
16-
// TODO: Switch to relative URL once angular-universal supports them
17-
// https://github.com/angular/universal/issues/348
18-
http.get('http://localhost:5000/api/SampleData/WeatherForecasts', options).subscribe(result => {
15+
16+
http.get('/api/SampleData/WeatherForecasts', options).subscribe(result => {
1917
this.forecasts = result.json();
2018
});
2119
}

templates/Angular2Spa/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
"webpack-hot-middleware": "^2.10.0"
1919
},
2020
"dependencies": {
21-
"angular2": "2.0.0-beta.13",
22-
"angular2-universal": "0.90.1",
23-
"aspnet-prerendering": "^1.0.0",
21+
"angular2": "2.0.0-beta.15",
22+
"angular2-universal": "0.98.1",
23+
"aspnet-prerendering": "^1.0.1",
2424
"aspnet-webpack": "^1.0.1",
2525
"css": "^2.2.1",
2626
"isomorphic-fetch": "^2.2.1",

0 commit comments

Comments
 (0)