ThinkPHP框架学习(二)
在上一節中,我主要講到了如何獲取ThinkPHP框架,以及虛擬目錄和虛擬主機的配置。準備工作完成之后,就可以利用ThinkPHP去部署項目了。
先在工作目錄(D:/zend/workspace)下新建一個market文件夾,用來部署項目,在market文件下再新建一個index.php,作為項目的入口文件。因為我們需要調用ThinkPHP框架,打開自己下載好的ThinkPHP框架文件,將其中的ThinkPHP文件夾(其他的Application、Public等均不需要)復制一份到D:/zend/workspace目錄下(與market文件夾同級,因為ThinkPHP框架可以支持多個項目調用,不僅限于這一個項目),利用zend studio打開index.php,去引入框架的核心程序。
這里用到了相對路徑知識, ../表示上一級目錄,后面會介紹到
之后,在瀏覽器中輸入www.myweb.com/market,出現如下效果,則說明框架引入成功。
當框架引入成功之后,market文件夾會自動生成3個文件夾,如下圖:
其中Home文件夾下的內容如下:
接下來即利用Home文件夾去部署雍達商城前端頁面。雍達商城前端頁面主要包括如下幾個部分:
選取其中的幾個頁面為例,根據其功能的不同,在Home文件夾中創建控制器和對應的視圖文件,引入相應的文件,最后效果如下圖:
具體實現流程不再細致講解,對于其中的一些注意事項進行分析。
相對路徑和絕對路徑
引入模板文件后,原先html文件和css文件之間的相對路徑關系會發生改變,需要考慮如何去進行調整,使css樣式正確顯示(包括圖片也是一樣的道理),這時就需要考慮相對路徑和絕對路徑問題了。
絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄開始,進行一級級目錄指向文件。
相對路徑就是以當前文件為基準進行一級級目錄指向被引用的資源文件。
- ../表示當前文件所在的目錄的上一級目錄
- ./表示當前文件所在的目錄(所以可以省略不寫)
- /表示當前站點的根目錄(域名映射的硬盤目錄)(我們一會兒會用到)
就拿這個項目為例,當我把前臺模板文件都移植到market文件后,需要對html、css、img之間的相對路徑關系進行調整,以其中的inex.html為例,原始樣式如下:
而移植到market文件后,變成了如下效果:
可以看出,html文件正常顯示,但是css樣式和圖片沒有正常顯示,其中的相對路徑關系從目錄結構中可以看出
index.html文件所在的絕對路徑為:D:/zend/workspace/market/Home/View/Index/index.html
style.css文件所在的絕對路徑為:D:/zend/workspace/market/Public/Home/css/style.css
如何才能在index.html文件中正確引用style.css文件?
- 若利用相對路徑,以index.html為基準,正確的引用方式為:../../../Public/Home/css/style.css
| ../ | 上一級目錄 | D:/zend/workspace/market/Home/View/... |
| ../../ | 上上級目錄 | D:/zend/workspace/market/Home/... |
| ../../../ | 上上上級目錄 | D:/zend/workspace/market/... |
根據index.html和style.css的絕對路徑地址以及表格分析,我們可以看出當跳了三級目錄(../../../)時,可以正確地去引用style.css
../../../Public/Home/css/style.css <=> D:/zend/workspace/market/Public/Home/css/style.css
- 若利用絕對路徑,正確的引用方式為D:/zend/workspace/market/Public/Home/css/style.css
同樣地,css樣式調整好之后,還需要調整html文件與img之間的引用關系。
index.html文件所在的絕對路徑為:D:/zend/workspace/market/Home/View/Index/index.html
很多圖片都存儲在images文件夾下,而images文件所在的絕對路徑為:D:/zend/workspace/market/Public/Home/images
- 若利用相對路徑,以index.html為基準,正確的引用方式為:../../../Public/Home/images/XXX.jpg
- 若利用絕對路徑,正確的引用方式為D:/zend/workspace/market/Public/Home/images/XXX.jpg
路由解析
ThinkPHP框架的URL地址可以有以下四種形式:
前面我們講到了一般情況下是如何進行絕對路徑和相對路徑的調整,而結合TP框架進行設置時,我們還需要遵循一定的規則,根據路由形式選擇的不同,可能會造成一定的影響。
當我們采用pathinfo路徑形式去訪問頁面時,如果我們希望利用相對路徑的形式去引用css或者圖片,上面講到的路徑形式是沒有問題的,因為這時它是以index.html為基準去引用style.css
當采用基本get形式去訪問頁面時,如果我們希望采用相對路徑的形式去引用css或者圖片,這時它并不是以index.html為基準,而是以項目的入口文件index.php為基準,所以如果還按照上面講到的路徑形式去設置的話,就會出現問題。
index.php的絕對路徑為D:/zend/workspace/market/index.php
正確的引用路徑為:./Public/Home/css/style.css(./表示當前目錄,可以省去),而不是上面講到的../../../Public/Home/css/style.css。
為了避免這類問題的出現,我們可以采用絕對路徑,但不采用上面講到的方式。
我們在前面提及到/ 表示當前站點的根目錄(域名映射的硬盤目錄),即我們之前設置的虛擬目錄位置D:/zend/workspace,/就等價于該地址,所以利用這種方式,正確的引用路徑為:/market/Public/Home/css/style.css.
對于圖片的引用也是一樣的道理,這里不再贅述。這樣一來,index.html對于css樣式和img的引用就完成了,其他頁面的引用均類似,進行一番調整便可以正確引入css和圖片。
某些css樣式里也有圖片,在引入圖片時,可以使用相對路徑,它是以css文件自身為基準,與其他文件沒有關系。
注:以上內容僅是我看過視頻教程后個人的一些理解,可能會有不當之處,望理解:)...
閱讀原文
轉載于:https://www.cnblogs.com/Ai-heng/p/7337233.html
總結
以上是生活随笔為你收集整理的ThinkPHP框架学习(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一步步完成jsRender + Spri
- 下一篇: Netstat命令(windows下)