前后端分离情况下你们怎么处理相对路径

AI摘要
本文探讨前后端分离系统中图片地址存储与显示的三种方案:A方案后端返回相对路径和完整URL;B方案前端通过环境变量拼接;C方案使用ORM访问器自动处理。A方案简单直接,B方案前端可控,C方案后端统一管理。建议根据项目复杂度选择,C方案在维护性和一致性上更具优势。

比如头像或者其他文件、图片,数据库中储存了相对路径且业务必须储存相对路径(比如对象储存绑定的域名变动),在前后端分离的后台,我需要一个完整地址显示图片,提交修改的时候要存入相对路径,需要编辑时你们怎么做的

A方案,返回两个链接
user_picture_path abcd.png
user_picture_url storage.domain.com/abcd.png

B方案,前端处理
添加个VITE环境变量放存储地址,图片等组件二次封装,如果是相对链接拼接VITE

C方案,出入库自动添加去掉域名
laravel orm的访问器很容易一次性实现这一点

你们用哪个方案,各有什么优势,是否有更好的方案

:) wink
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

肯定是c方案 前端只负责使用完整地址是最不容易出错的

3周前 评论
唐章明 (楼主) 3周前
讨论数量: 10
Dcatplus-杨光

原来的字段 保存不变,model 里面追加一个字段,XXX_url, 返回完整地址。接口就用这个字段。

3周前 评论
qufo 3周前
Mutoulee

存储保持不变(相对路径),然后定义一个属性访问器,在访问器中组装绝对URL,不管是本地存储还是对象存储都可以处理。

3周前 评论

方案一和二都需要前端处理 ,如果是多域名处理起来就比较麻烦了,还是直接返回完整的url比较好

3周前 评论

我这是返回相对路径 ,但相对路径有一个统一前缀, 图片会在页面上自动加上当前域名, 被网关捕捉后重写返回完整地址

3周前 评论

肯定是c方案 前端只负责使用完整地址是最不容易出错的

3周前 评论
唐章明 (楼主) 3周前

数据存储diskpath,模型里定义url访问器,前端直接使用url

3周前 评论

一般采用 C方法 采用 orm 的定义访问器

2周前 评论

如果是富文本里面里面的文件资源 怎么处理会好点

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!