来自小白的疑惑:
前台和后台要不要写在同个项目内?
什么情况需要呢?如果需要,有哪些要求呢?
如果前台用Vue框架
后台使用React框架,能写在同个项目内吗?
如果分开写的话,部署到网上的时候,需要两个域名?
...困惑,求解答
来自小白的疑惑:
前台和后台要不要写在同个项目内?
什么情况需要呢?如果需要,有哪些要求呢?
如果前台用Vue框架
后台使用React框架,能写在同个项目内吗?
如果分开写的话,部署到网上的时候,需要两个域名?
...困惑,求解答
可以写在同一个项目里,有两种写法:
一种就是一个项目一个文件夹,放在同一个git项目根目录下,其实就是两个项目各自在一个文件夹里,本质还是两个项目,这种情况前台项目配域名,后台项目访问ip就行,不需要域名,因为后台一般就是给自己人用的,当然你配个域名也行。这种情况前台后台项目完全没有关系,可以前台vue后台react。
还有一种就是真正意义上的一个项目,通过路由去控制访问前台后台,但是这种不安全,写在一个项目里,一个域名就行,当然vue和react就只能选一个了。
一般前台和后台项目是分开的,他们调用的api的鉴权也是不一样的,如果是个特别简陋的小项目,可以把前后台写在一个项目,api的鉴权可以通过一些约定api路由的规则去做。
我最近刚用 Element-ui-Admin 在前后端,说下我的思路
最开始我想分开写,因为毕竟前后端业务逻辑侧重点不同,甚至前端我都极少用到 Elemnet ,但是由于我面对的业务特殊性,有很多自定义组件还是有重复的,于是我考虑融合到一个项目里
当然这里还有个巧合,就是接口那边把前后端用户写到一个表里了,他们的登陆方法都是相同的
当把前后端融合到一个项目里的时候,最麻烦的就是路由和权限验证问题
我是通过前后端约束,也就是和接口那边约定每个页面的权限Key,然后前端静态化一份,最后登陆的时候根据接口返回来的权限 keys ,去实现前端权限路由
这里需要后端同步验证的,毕竟前端不安全
总的来说,通过这次经验,我觉得还是分开的比较好,因为分开能使得各自的路由维护效率更高,而且业务处理方式也更清晰,合并在一起狠容易走到为了统一而统一的陷阱
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
单应用版
https://gitee.com/y_project/R...
RuoYi-Vue 前端分离版
单应用版
https://gitee.com/y_project/R...
10 回答11.4k 阅读
4 回答3.3k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
2 回答3.6k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
看你怎么论”项目“了。npm init出来的是一个项目,springcloud出来的也是一个项目,放在一个文件夹里的所有代码是一个项目,好几个GitHub仓库在一起是一个项目。
什么前端用Vue后端用React,那是你对”项目“没有明确的规划。ToC的一个WebApp应用用vue开发的,在GitHub上是A仓库,ToB的管理后台WebApp应用用react开发,在GitHub上是B仓库,使用同一个Java后端服务在GitHub上是C仓库。它们是同一个项目”某某某商城项目“。
那你说到底什么是项目?
一个文件夹放三个文件夹,三个文件夹对应三个GitHub仓库,有没有问题?没啥问题呀。那一个文件夹包含的三个文件夹直接就是一个GitHub仓库,有没有问题?也没有问题啊,你一个人开发,功能迭代都是线性的,就一个仓库也无所谓呀。至于部署,写CI也就是目标文件夹不一样而已。
所以分不分开跟什么有关?
至于需要几个域名,一个域名子路由,多个子域名,甚至多个域名,对于Nginx叫事儿吗?域名上花钱多钱少看看自己兜就明白了。
一个域名就一定是一个项目吗?显然不是,移动端我用m.xxx.com,pc端我用www.xxx.com,实际访问的都是vue开发的ToC的应用,很神奇的是我用了响应式开发。那你说是两个项目还是一个项目呢?
最后想想张三丰问张无忌的那个经典问题--现在你还记得多少。