使用thinkphp5框架完成的项目,需要部署在服务器上(项目是直接放在www下面的,并将index.php也迁移出来),为了项目的访问路径高大上一点,需要将域名迁移到根目录下,但入口文件迁移需要注意几个事项,我这开发的时候整个项目是在二级目录下,现在要变成一级目录:
一、入口文件放到根目录下(注意,一定要将.htaccess文件与index.php一起迁移,不然访问会出问题),修改index.php文件如下:
// 定义应用目录
define('APP_PATH', __DIR__ . '/application/');
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
二、因为引用了js,css等,还需要修改配置文件config.php,其中使用“*”号注释部分是本来在本地配置的路径,mpsq就是项目文件,入口文件修改位置后,要注意改这里:
// 视图输出字符串内容替换
/* 'view_replace_str' => [
'__PUBLIC__' => '/mpsq/public',
'__STYLE__' => '/mpsq/public/style',
'__LAYUI__' => '/mpsq/public/layui',
'__img__' => '/mpsq/public/upload/image/',
],
*/
'view_replace_str' => [
'__PUBLIC__' => '/public',
'__STYLE__' => '/public/style',
'__LAYUI__' => '/public/layui',
'__img__' => '/public/upload/image/',
],
三、入口文件迁移,验证码不显示问题,清除缓存区,平时验证码不显示也可以使用此方法:
//打开:vendor/topthink/think-captcha/CaptchaController.php
public function index($id = "")
{
ob_clean(); //这个就是添加的清除缓存区
$captcha = new Captcha((array)Config::get('captcha'));
return $captcha->entry($id);
}
四、验证码刷新链接修改
<!-- 引入验证码 -->
<img src="{:captcha_src()}" id="verify_img" > <a id="kanbuq" href="javascript:;" >看不清,换一张</a>
//刷新验证码
$("#kanbuq").click(function(){
var ts = Date.parse(new Date())/1000;
//本地路径
//$('#verify_img').attr("src", "/mpsq/public/index.php/captcha?id="+ts);
//迁移后的路径
$('#verify_img').attr("src", "/public/index.php/captcha?id="+ts);
});