thinkphp 前后端分离
Posted nul1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 前后端分离相关的知识,希望对你有一定的参考价值。
thinkphp 前后端分离
简单记录一下之前学习tp的历程吧。
前端html页面渲染
<?php
namespace appindexcontroller;
use thinkController;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
}
这样的话,你需要将你的前端文件放到application/index/view,view文件夹默认是没有的,需要你自己新建了,如:application/index/view/index.html
前端js/css文件渲染
一般情况js/css文件是放到public/static内,例如我这里将其新建一个admin文件夹(即为/public/static/admin)那么这时候也就是需要在刚才渲染的html内调用,这里可以使用替换
https://www.kancloud.cn/manual/thinkphp5/118120
然后在index这个控制器也就是app/index 同级目录下新建如下config.php
<?php
return [
'view_replace_str' => [
'__PUBLIC__'=>'/public/static/admin/',
],
];
然后你在前端的html文件当中输入__PUBIC__就会自动帮你替换成/public/static/admin/
当然,如果你直接__PUBLIC__的话,输出的是/public/static/admin/ 那么调用css/js文件的时候很可能就是http://localhost:8888/index.php?s=/public/static/admin/ 这样肯定是没办法调用css/js文件的。所以可以如下方案进行解决;
在/public/index.php当中添加一个常量
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// [ 应用入口文件 ]
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
define('SITE_URL','http://127.0.0.1:8888/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
然后再把刚才的config文件写出
<?php
return [
'view_replace_str' => [
'__PUBLIC__'=>SITE_URL.'/public/static/admin/',
],
];
这样的话,__PUBLIC__的值就是http://127.0.0.1:8888//public/static/admin/
然后前端文件当中就可以正常的修改了;
例如
<link rel="stylesheet" href="__PUBLIC__/layui/css/layui.css">
以上是关于thinkphp 前后端分离的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp加iview-admin的前后端分离项目,请问thinkphp如何调试后端自己写的接口?
基于ThinkPhp6+Vue+AntDesign前后端分离解决方案
ThinkPhp6.x+AntDesign+Vue前后端分离快速开发平台