showdoc部署迁移时如何保证图片正常显示
最近在考虑showdoc私有化部署,用于积累和沉淀本人的一些产品方案和文档。在部署过程中遇到一个问题:showdoc的迁移。
大家都知道,showdoc的迁移其实很简单,把整个目录复制一下,放到新的目录就可以。但是有一个问题,如果md文档中涉及图片的,复制到新的目录不一定展示。主要原因在于,上传的时候返回页面上的地址是绝对地址。如果局域网涉及本地IP的变动,就无法访问。部署到服务器端,域名变更也是同样的道理。
就这个研究了好久,终于搞定了。解决方案如下:
把\showdoc\server\Application\Api\Controller目录下的:PageController.class.php文件232行:
$url = get_domain()..substr($upload->rootPath,1).$info['editormd-image-file']['savepath'].$info['editormd-image-file']['savename'] ;
把这里的 get_domain().去掉即可
大概原理是,图片上传流程不变,但返回的图片地址变成相对地址,而我们复制转移项目的时候,图片目录也是跟着改变的,所以就确认了在任何情况下图片的路径都是正确的。
当然,如果之前没有进行这个操作的,也不是没有办法。就是麻烦一些:
1)下载SQLiteSpy数据工具
2)用SQLiteSpy打开\showdoc\Sqlite下的:showdoc.db.php
3)然后执行批量替换SQL语句,即把正文所有图片路径都改为相对路径:
UPDATE page SET
post_content = replace(post_content, 'http://189.29.87.196', ' ')
where id=1
完事,搞定!
========================
本文系大山原创文章,如需转载,请联系作者,谢谢~