angular - 哪些角度版本与 AspNetCore SpaServices 兼容?
问题描述
我们正在将使用 .net 框架和 angular 1.7 的旧应用程序转换为 .net core 2.1。我的第一步是转换为 .net 核心并用它启动旧的 Angular 代码。
我在 .net 核心中找到了一个使用 services.AddSpaStaticFiles、app.UseSpaStaticFiles、spa.UseAngularCliServer 的示例。
我已经运行了示例,但是我现在如何将启动链接到旧应用程序,这甚至可能吗?Microsoft.AspNetCore.SpaServices 中的这些扩展是否与这个非常旧的 Angular 版本兼容?
解决方案
在阅读文档和示例时,您必须区分 Angular 和 AngularJS。旧版本 (1.X) 通常被称为 AngularJS,而新版本 (2.X) 被称为 Angular。
可以使用任何版本的 .NET Core 运行任何前端,但默认扩展方法可能不适合处理每种情况,因此您可能必须编写自定义中间件来为您处理不同的东西。遗憾的是,我没有使用 AngularJS 的经验,所以我不知道默认管道是否可以正常工作或需要进行哪些调整。我会假设 AngularJS 不使用 Angular CLI(但请仔细检查),所以UseAngularCliServer
不适用。
您可以参考此Stack Overflow 答案中扩展方法如何工作的基础知识。
您需要做的将在很大程度上取决于您的 SPA 应用程序,但基础是:
- 让应用程序知道它应该将某些文件作为“默认”提供(例如
index.html
) - 让应用程序知道您的 SPA 将使用一些应该提供的资源(例如脚本、图像、js 文件等)
- 让应用程序知道 SPA 中存在“内部”路由,并且在请求这些路由时不应尝试加载不同的资源(例如,不要在子路由上返回 404)。
我找到的示例指南(使用 .NET Core 2.0,但您应该能够适应 2.1)在这里。
推荐阅读
- r - 嵌套 IF ELSE For 循环中的舍入
- javascript - 如何使球与画布上的三角形电源碰撞?
- python - 在python中执行查询之前设置对游标对象的限制
- azure - VMSS 中的自定义扩展
- ios - ios中AudioUnitRender()函数返回的音频数据最大值是多少
- prolog - 如何在 GProlog 中优化打包问题的解决
- sql - Datagridview在VB.NET中修改列
- php - 在 Guzzle 中获取请求
- php - 使用 phpseclib 进行 RSA 解密失败
- dicom - 为什么 GE PACS 在 StudyLevel 中使用带有 c-find 的 Modality