Я пытаюсь создать SSR Angular 7 с использованием ядра dotnet для его размещения, в шаблоне по умолчанию используется 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 ):
startup.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"
}
]
}
}
}
}
}
Изменить сборку: ssr в скриптах package.json
"build:ssr": "ng build --configuration=production --project=ssr",
Код, который я выполняю - https://github.com/TPJ11/DotnetNG7SSR
Кто-нибудь знает, что я делаю не так? чувствую, что я бился головой об стену об этом :(
Правильно, поэтому не уверен, что именно ломает приложение, но у меня есть работа.
1) Создайте новое приложение .Net Core NG и удалите папку ClientApp, затем создайте пустое приложение angular 7 через CMD под названием ClientApp ng new ClientApp
2) Следуйте инструкциям по настройке Angulars SSR до шага 3.
3) Установите aspnet-prerendering npm i aspnet-prerendering
4) Замените код из шага 2c (main.server.ts), чтобы использовать код из руководства по установке Microsoft для main.server.ts
5) Откройте angular.json
файл и измените outputPath
для сборки на dist
и сервер outputPath
наdist-server
6) Открыть package.json
и внутри scripts
добавить"build:ssr": "ng run ClientApp:server"
7) Открытое tsconfig.server.json
и tsconfig.app.json
и изменения , types
чтобы включать в себя узел"types": ["node"]
8) Откройте Startup.cs и, как показано в руководстве по установке Microsoft, добавьте
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" };
});
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения