thinkphp 前后端分離


thinkphp 前后端分離

簡單記錄一下之前學習tp的歷程吧。

前端HTML頁面渲染

<?php
namespace app\index\controller;
use think\Controller;

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">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM