[thinkPHP5專案實戰_06]引入前臺頁面
一個網站的前端分一般分為前臺和後臺兩個部分,下面說明一下如何在tp5中引入前臺頁面。
tp5中訪問的是模組下的控制器,通過控制器獲取檢視下的頁面(模板佈局),輸出替換引導頁面載入靜態檔案(css,js,image)
1.前臺資源佈置
project 應用部署目錄 ├─application 應用目錄(可設定) │ ├─common 公共模組目錄(可更改) │ ├─index 模組目錄(可更改) │ │ ├─config.php 模組配置檔案 │ │ ├─common.php 模組函式檔案 │ │ ├─controller 控制器目錄 │ │ ├─model 模型目錄 │ │ ├─view 檢視目錄 │ │ └─ ... 更多類庫目錄 │ ├─command.php 命令列工具配置檔案 │ ├─common.php 應用公共(函式)檔案 │ ├─config.php 應用(公共)配置檔案 │ ├─database.php 資料庫配置檔案 │ ├─tags.php 應用行為擴充套件定義檔案 │ └─route.php 路由配置檔案 ├─extend 擴充套件類庫目錄(可定義) ├─public WEB 部署目錄(對外訪問目錄) │ ├─static 靜態資源存放目錄(css,js,image) │ ├─index.php 應用入口檔案 │ ├─router.php 快速測試檔案 │ └─.htaccess 用於 apache 的重寫 ├─runtime 應用的執行時目錄(可寫,可設定) ├─vendor 第三方類庫目錄(Composer) ├─thinkphp 框架系統目錄 │ ├─lang 語言包目錄 │ ├─library 框架核心類庫目錄 │ │ ├─think Think 類庫包目錄 │ │ └─traits 系統 Traits 目錄 │ ├─tpl 系統模板目錄 │ ├─.htaccess 用於 apache 的重寫 │ ├─.travis.yml CI 定義檔案 │ ├─base.php 基礎定義檔案 │ ├─composer.json composer 定義檔案 │ ├─console.php 控制檯入口檔案 │ ├─convention.php 慣例配置檔案 │ ├─helper.php 助手函式檔案(可選) │ ├─LICENSE.txt 授權說明檔案 │ ├─phpunit.xml 單元測試配置檔案 │ ├─README.md README 檔案 │ └─start.php 框架引導檔案 ├─build.php 自動生成定義檔案(參考) ├─composer.json composer 定義檔案 ├─LICENSE.txt 授權說明檔案 ├─README.md README 檔案 ├─think 命令列入口檔案
1.1模板檢視的首頁存放位置
根據tp5的目錄介紹,前端檔案的檢視位於application的模組下面的view資料夾下。
application資料夾下預設已經有了一個index模組,可以拿來直接使用。
渲染模板最常用的是使用\think\View類的fetch方法:
fetch('[模板檔案]'[,'模板變數(陣列)'])
當fetch中不帶任何引數的時候,預設訪問規則為:
當前模組/預設檢視目錄/當前控制器(小寫)/當前操作(小寫).html
假如當前控制器為Index下面的index類的話,fetch獲取的就是view中的Index下面的index.html檔案其中html字尾會自動加上;
因此,在該index資料夾下新建一個view資料夾,然後新建一個Index控制器資料夾,將前臺的首頁index.html拷貝過來:
1.2前臺靜態資源存放位置
根據tp5的目錄介紹,前端的靜態資源(css,js,image)存放於puclic/static資料夾下,
因此,在static資料夾中新建一個index資料夾,將index.html引入的檔案拷貝過去。
2.模板渲染和輸出替換
前臺檔案佈置完成後,http://localhost/tp5/public/index.php/index/index訪問的還是tp5的預設頁面,因此需要將該頁面替換成index.html頁面。
開啟檢視所在的模組index下的controller下的index.php檔案,該檔案即為http://localhost/tp5/public/index.php/index/index訪問的位置,
模板渲染使用到了fetch()方法,需要在index.php中引入並在Index類進行繼承:
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return $this->fetch();
}
}
儲存後開啟瀏覽器輸入http://localhost/tp5/public/index.php/index/index得到了index.html的頁面,其中頁面載入的靜態檔案均未找到位置,因此需要重新定位
開啟application下的config.php檔案,在分頁配置下面新增:
//輸出替換
'view_replace_str' => [
'__PUBLIC__'=>'/tp5/public', //將__PUBLIC__指向tp5下面的public
'__ROOT__' => '/',
]
將__PUBLIC__指向根目錄下的public資料夾,再開啟index.html檔案,將在引入的檔案前面新增字首__PUBLIC__/static/index,
例如原來index.html和css資料夾同一個目錄下,在index.html引入css方式為:
<link rel="stylesheet" type="text/css" href="css/demo.css">
則現在的引入方式該為:
<link rel="stylesheet" type="text/css" href="__PUBLIC__/static/index/css/demo.css">
儲存後再次開啟瀏覽器訪問tp5預設目錄,完整的前臺檢視: