angular - Visual Studio 2017 和角度集成
问题描述
这是一个基本问题,但我想了解 Visual Studio 如何处理 Angular 项目。
通过使用 Visual Studio 2017 (C#) 中提供的 Angular 模板,您能否解释一下 Angular 应用程序的工作原理?
对于开发环境,我相信 Visual Studio 运行两台服务器:一台是用于 Web API 调用的 IIS,另一台是用于 Angular 项目的 node.js(我说的对吗?)
但是,在开发环境中,应用程序使用 Web API 项目的地址(例如
localhost:5000
)而不是 node.js 提供的 Angular 应用程序地址(例如localhost:66328
)。这是怎么发生的?生产环境呢?Web API (C#) 和 Angular 都在 IIS 中工作?
如果 Angular 项目是在 Visual Studio 之外开发的,例如使用 Eclipse/Visual Studio Code/Webstorm,怎么样?如何将这两个项目集成到生产目的?
我知道这些是非常基本的问题,但如果你能提供答案/参考/链接,我会很高兴。
解决方案
魔术不是在 Visual Studio 中完成的。魔术是在 .NET 中完成的。
这就是为什么您可以使用 VS Code 甚至 vim 在 Mac 上创建和开发 ASP.NET Core Angular 项目的原因!
为简化起见,ASP.NET Core 所做的是:
- 在开发中,他们将所有 URL 重定向到 的输出
ng serve
,但这是在所有路由都添加后发生的,因此转到控制器的 URL 仍然可以工作 - 在生产中,他们将这些 URL 重定向到静态文件处理程序,该处理程序查看添加
dist
结果的文件夹ng build
。
该代码并非完全对您隐藏。
请参阅我用作上述源Startup.cs
的项目模板中的文件。
他们还使用 ASP.NET 节点服务(.NET <-> 节点互操作)来实现服务器端渲染。这意味着如果你使用它,你需要在服务器上使用 Node。有关详细信息,请参阅服务器端渲染文档。
同一个文档页面还指出了他们如何有一个可选的开发代理,以防您想ng serve
手动运行,它只是代理(发送)所有 URL(在所有路由都与 URL 进行检查并且不匹配之后)到 Angular 开发服务器。
推荐阅读
- python - 如何向 csv 文件的行添加值?
- regex - 使用 shell 读取和修改 html
- python - 使用 pywinauto 捕获文本
- jmeter - JMETER 4. 0 | JMeter 分布式负载测试 | jp@gc - 步进线程组 | 奴隶机器 | CPU 利用率
- excel - 确定特定范围内的最后一个单元格并填充它,VBA
- android - 同时使用 Android UX SDK 和 Mobile SDK
- python - 用于访问路由的 Django permission_classes 不可调用
- java - Java按共同值合并流
- javascript - Shinyjs 函数未定义?
- html - 移动光标时调整高度表的大小