当前位置:  开发笔记 > 编程语言 > 正文

为什么我需要HTTP服务器来运行Angular 2?

如何解决《为什么我需要HTTP服务器来运行Angular2?》经验,为你挑选了2个好方法。

我来自传统的后端Java/Spring环境学习Angular 2 framework,并且很难掌握许多基本概念.

我正在阅读使用TypeScript的Manning书Angular 2 Development,它说我需要HTTP-server运行我的SAP's.这是为什么?

我以为Angular在客户端机器上运行.那么服务器的功能到底是什么?如果我只是打开HTML,Angular不做它的魔力.



1> Thierry Temp..:

事实上,Angular应用程序假设使用HTTP协议进行访问,因此最好使用HTTP服务器进行开发.你将处于"相同的条件".此外,这可以防止出现一些限制和限制:

相对于域名的绝对链接.我的意思是,如果您尝试从域的根路径引用具有绝对路径的资源.这可能不适用于文件协议,因为它的根路径是文件系统的根文件夹

JavaScript和AJAX.JavaScript无法与file://协议一起使用,根据浏览器,您可以使用某些安全限制.

有关这些问题的详细信息,请参阅以下链接:

https://developer.mozilla.org/en-US/Learn/Open_a_file_in_a_browser#Opening_a_local_file

https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally

关于Web服务器的选择,静态Web服务器对于Angular应用程序来说已经足够了,为此目的有几个轻量级HTTP服务器:

http-server- https://github.com/indexzero/http-server

lite-server- https://github.com/johnpapa/lite-server

一个有趣的功能(lite-server例如)包括实时重新加载.服务器会检测您何时更新某些内容(HTML,JavaScript,CSS)并自动在浏览器中重新加载相应的页面.这使您在实施应用程序时更有效率.

最后,如果同时实现客户端(Angular)和服务器端,这些部分应该在不同的服务器上执行(在开发环境中,它可以/应该在生产等其他环境中不同).我的意思是:

前端的静态HTTP服务器,仅为Angular应用程序提供元素.

后端的动态HTTP服务器,提供服务器端处理.你可以在这里使用你想要的技术(Node,Java,...)

由于这两个服务器,您必须启用CORS(跨源资源共享)以使Angular应用程序能够在服务器应用程序上执行AJAX请求.事实上,你不在同一个领域.当浏览器Origin在请求中发送标头时,必须在服务器端配置以返回CORS标头.有关更多详细信息,您可以查看以下链接:

http://restlet.com/blog/2016/09/27/how-to-fix-cors-problems/

http://restlet.com/blog/2015/12/15/understanding-and-using-cors/

如果使用Angular的路由功能,另一件需要注意的事情是HTML5历史模式模拟了一些"真实"地址,但在这种情况下,您需要在Web服务器上进行一些配置以加载index.html(您的入口点文件)对应于每条路由的每个URL.有关更多详细信息,请参阅此答案:当我刷新我的网站时,我得到了404.这是使用Angular2和firebase.

最后要考虑的是为您的生产环境打包应用程序.您需要使应用程序高效(缩小元素,汇总JavaScript文件,预加载模板......).在这个级别,没有必要保留两个单独的服务器,Angular部分可以打包在服务器端应用程序中.在这种情况下,后者必须能够提供一些statis文件.

希望它对你有帮助,蒂埃里



2> 小智..:

如果它与AngularJS 1.3类似,它会使AJAX请求获取HTML模板,至少它需要一个真正的HTTP服务器.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有