****dirname(__FILE__) 绝对路径问题一

一 问题描述

*说明:公司自己框架的使用规则是前台页面和后台api分开放在两个项目下,即两个访问路径,前台页面要实现某功能,直接调用在api中已经封装好的方法即可。

*todo:在框架中集成芝麻信用的sdk,include sdk中的文件,调用其封装好的方法,快速实现功能。

*在api项目中引入芝麻信用的sdk文件,调用芝麻信用sdk已经封装好的方法,调试时,访问api项目的访问地址,接口成功跑通;

在ats中调用api中的方法,竟然无返回数据;

经调试发现,执行到api的代码中时,引入的芝麻信用和公私钥文件,竟然没有读到,导致无返回数据;

深入调试发现,api代码中引入芝麻信用的sdk文件和公私钥文件时,引入时代码不规范(使用的时相对路径),如下图,导致引入的文件会读取访问地址所在项目目录,即ats的项目目录,但是ats项目目录下并没有sdk文件等,导致报错;

****dirname(__FILE__) 绝对路径问题一

二 解决问题

代码在api目录下,无论从哪里访问调用api中的接口,读取的sdk文件和公私钥文件理应时api目录下的,可以使用绝对路径 

dirname(__FILE__);用这个获取当前文件所在的目录,然后根据这个目录,向前或者向后定位。如下图,完美的解决了问题。