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.x+Vue前后端分离后台管理系统

基于ThinkPhp6+Vue+AntDesign前后端分离解决方案

ThinkPhp6.x+AntDesign+Vue前后端分离快速开发平台

基于ThinkPhp6+Vue+AntDesign前后端分离极速开发平台

推荐ThinkPhp6.x+Vue+AntDesign经典前后端分离后台系统脚手架