gpt4 book ai didi

angular - .NET Core Angular 7 服务器端渲染

转载 作者:行者123 更新时间:2023-12-05 08:40:49 25 4
gpt4 key购买 nike

我正在尝试使用 dotnet core 创建一个 Angular 7 SSR 来托管它,默认模板使用 angular 5 并且 MS 有文档让 SSR 在上面运行(工作正常)我已经尝试通过命令行升级到angular 7 并开始一个新的 Angular 项目并在之后实现 SSR 但我总是遇到同样的问题, ng build 和 ng build:SSR 从命令行都可以正常工作但是当我从 VS 运行它时它超时(我认为与问题无关)在它抛出错误之后:

The thread 0x6608 has exited with code 0 (0x0).
The thread 0x1134 has exited with code 0 (0x0).
The thread 0x54bc has exited with code 0 (0x0).

我对 NG5 SSR 所做的更改 ( https://go.microsoft.com/fwlink/?linkid=864501 )以下 ( https://github.com/aspnet/Templating/issues/593) 是:

启动.cs

options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.bundle.js";

options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.js";

再次将SSR项目添加到angular.json

 "ssr": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:server",
"options": {
"outputPath": "dist-server",
"main": "src/main.server.ts",
"tsConfig": "src/tsconfig.server.json"
},
"configurations": {
"production": {
"optimization": false,
"outputHashing": "media",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"bundleDependencies": "all",
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}
}
}
}

在 package.json 脚本中更改 build:ssr

"build:ssr": "ng build --configuration=production --project=ssr",

我正在运行的代码 - https://github.com/TPJ11/DotnetNG7SSR

有人知道我做错了什么吗?感觉我一直在用头撞墙:​​(

最佳答案

是的,所以不确定是什么破坏了应用程序,但我有解决办法。

1) 创建一个新的 .Net Core NG 应用并删除 ClientApp 文件夹,然后通过 CMD 创建一个名为 ClientApp ng new ClientApp

的空白 angular 7 应用

2) 关注angulars SSR setup guide到第 3 步。

3) 安装aspnet-prerendering npm i aspnet-prerendering

4) 交换步骤 2c (main.server.ts) 中的代码以使用 Microsoft setup guide 中的代码对于 main.server.ts

5) 打开angular.json 文件,将构建的outputPath 更改为dist,将服务器的outputPath 更改为dist-server

6) 打开 package.json 并在 scripts 中添加 "build:ssr": "ng run ClientApp:server"

7) 打开 tsconfig.server.jsontsconfig.app.json 并更改 types 以包含节点 "types": ["节点"]

8) 打开Startup.cs,如图Microsoft setup guide添加

spa.UseSpaPrerendering(options =>
{
options.BootModulePath = $"{spa.Options.SourcePath}/dist-server/main.js";
options.BootModuleBuilder = env.IsDevelopment()
? new AngularCliBuilder(npmScript: "build:ssr")
: null;
options.ExcludeUrls = new[] { "/sockjs-node" };
});

关于angular - .NET Core Angular 7 服务器端渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53356741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com