我的应用程序包含两个独立的部分,后端是 Java(春季启动),前端是 Vuejs 。
我可以在需要的地方简单地将 JAR 部署到我的后端代码中,
但是,在部署 Vuejs 应用程序时,我可以做类似的事情,只需将编译后的 Vuejs 应用程序放在 Java Spring中的正确路径中即可引导应用程序,这也将全部用于前端。
当除了部署之外,它实际上不需要执行任何操作时,将它放入 Spring boot 似乎对我来说是不合适的(也许我知道像乔恩·雪诺(Jon Snow)一样。
此外,当将其置于 Spring boot 应用程序下时,手动进行URL编辑也不起作用。
此应用程序不会自行执行任何操作,而是从后端应用程序获取所有数据。
那么我在这里有什么选择,有人可以指导我正确的方向吗?
我是否只是设置一个 nodejs 服务器并在其中部署 Vuejs 应用?我不知道它是如何工作的,或者不确定是否应该在生产应用程序中这样做。如果是这样,我从哪里开始设置 nodejs ?
答案 0 :(得分:2)
将它与spring一起部署是有意义的,并且这是非常普遍的做法,至少从我对Angular的经验(我认为与VueJS非常相似)来看。 您不需要运行2台服务器。您只需让Spring服务器处理您的HTML / js / CSS文件,即可帮助您避免CORS的任何问题。
我不太确定“ URL手动编辑”是什么,您是通过编辑URL来浏览网页吗?我在tbh上看不到太多用例,我想那只是几个设置的问题。
在gradle中-我将建立一个构建任务(不确定任务是否正确,2个build.gradle文件,每个用于FE / BE,BE取决于FE),当BE为BE时运行FE运行时,它将创建静态HTML / js(在我的情况下,它是从angular生成的,但对于Vue应该是相似的),并且BE任务将输出添加到java应用程序的类路径中,以便Spring可以注册HTML并将其提供给您。 / p>
答案 1 :(得分:2)
您可以使用 Docker 创建Vue.js应用程序的Dockerized版本,然后将其部署到诸如AWS(例如EC2)之类的云服务提供商上。
查看此链接以获取基本指南https://vuejs.org/v2/cookbook/dockerize-vuejs-app.html
答案 2 :(得分:0)
我的方法是分别部署前端和后端。
您可以使用Web服务器将请求代理到Vuejs或Spring Boot。
例如,如果您使用Nginx,则可以使用此配置传递请求
# pass root request to index file
location / {
root /front_files/;
index /index.html;
}
# pass requests to static files
location ~ ^/(js|styles) {
root /front_files/;
}
# pass requests to back-end
location /api/ {
proxy_pass http://127.0.0.1:8080/;
}