场景:
http://angular.zhaobg.com 是Angular前端框架搭建的前台页面,Drupal 站点来提供 JSON 数据:http://api.zhaobg.com,而 Drupal 在编辑器上传的图片资源是相对路径。
在本地开发环境中,图片资源是无法读取的
问题
不同的域名,绑定不同的站点目录,读取的 JSON 中的数据又是相对路径,如果图片资源没有部署到对应的站点目录下,是无法访问。
当然你可以使用 copy 资源的方法或者自动化脚本部署的方式来达到目的,不管是代码还是图片,也应该是在一处维护,出处更新同步。
软连接解决
基于这两个站点都在同一个服务器下,我使用了软连接来解决这个问题:当我访问http://angular.zhaobg.com/sites的时候,实际访问的是Drupal站点的sites目录
Linux 命令行如下:
首先进入到 Angular 构建好的发布目录(域名绑定解析到的目录)
cd /mnt/biaoge/www/angular.zhaobg.com/dist/cms/
ln -s /mnt/biaoge/www/api.zhaobg.com/sites/ sites
如果哪天你不需要了,这样删除软连接:
rm sites // 切记不能 rm -rf sites/
其他方式
还有比如
- Drupal 本身导出的 JSON 图片资源就是绝对路径
- 通过 Nginx 转发代理
- 获取到 JSON 数据后,前端 JS 正则批量替换路径的方式
- 当然可能还有更好的其他方式