我使用eirslett frontend-maven-plugin创建了一个maven web项目, 它允许我自己安装node,node_modules,我已经创建了一个angular-cli项目,还有一个Spring Boot独立应用程序,我用它来使用休息服务。
我已配置了proxy-config.json& package.json如下:
代理config.json
"/api": {
"target": "http://someipaddress:8080",
"secure": false
}
的package.json
...
"start": "ng serve --proxy-config proxy.conf.json",
...
当我只是执行 npm start (通常为Dev env调用 ng serve )时,一切正常,它可以使用我后端api中的数据。
但问题是当你在maven构建中运行部署的ng构建时出现问题,似乎 CORS 会出现问题,并且网络包不会对待ng服务 - -proxy-config proxy.conf.json,因为它没有运行任何生产服务器(通常是节点服务器),并且web pack不会将这些配置捆绑到任何捆绑包中。
请您帮我解决一下这种情况需要遵循的方法/任何其他配置。我怎样才能让我的前端与Backend API进行通信并使用其余的服务,包含将部署在Web服务器中的所有捆绑的dist文件夹的WAR通常是tomcat?
如果您遇到过这个问题,可以分享一下您如何理解这个场景,任何资源/链接或示例都可以帮助我解决这个问题。谢谢!
答案 0 :(得分:0)
text = "[[procedural programming|procedural programming languages]] [meow|woof]"
new_text = specail_replace(text, lambda x: x.replace("[[", "").replace("]]","").split("|")[1])
>>> procedural programming languages [meow|woof]
仅用于开发目的,在制作中,您将无法运行proxy.conf.json
或类似的内容。
投入生产时,您通常会执行构建脚本ng serve
,该脚本会在ng build --prod
文件夹中创建一堆静态文件。这些文件应该部署到您的生产文件夹中。
里面有你的应用程序,当浏览器提供服务时,在同一个域(比如https://mysampleapp.com)下,前端文件以及后端API正在服务。
调用https://mysampleapp.com或https://mysampleapp.com/index.html之类的内容的意思是提供静态文件,调用https://mysampleapp.com/api/v1/people之类的内容会调用后端API(应用程序中API的位置)。
现在,如果您使用网址https://mysampleapp.com加载应用,内部应用通常会发出类似dist
的请求(不指示完全限定的主机名等),那么一切都应该正常工作不应该是任何CORS问题。
您必须要做的确切配置实际上取决于您正在使用的服务器(IIS,jBoss,Apache,Nginx)和部署策略(前端/后端的不同位置,例如某些Apache / Nginx上的前端,然后转发到IIS / jBoss / Node上运行的后端,...)。
我打算写一些关于这方面的内容,因为很多人都有类似的担忧和问题(我只是没有足够的时间)。来自NGConf的Dan Wahlin 的讲话涉及到这个话题。他使用Docker,但无论如何,从概念的角度来看,这适用于每个环境:https://www.youtube.com/watch?v=socWfhPJptE