thinkphp模板路徑問題

來源:互聯網
上載者:User
第一次使用thinkphp,關於模板裡資源檔路徑的設定一直搞不懂。
比如

我的項目採用了分組‘Admin’和‘Content’,之前為了測試模板顯示效果簡單地寫了個PageTestAction只有一個show方法來display模板而且為了方便設定了預設分組、預設模型、預設方法,因而訪問地址http://localhost/XBlog(項目名)/index.php一切正常。

而當我使用正常的路徑http://localhost/XBlog/index.php/Content/PageTest/show來訪問是資源檔便無效了

按照我的理解 ’__PUBLIC__‘=‘/Public’因而 ‘.__PUBLIC__‘=‘./Public’, 而'./'表示目前的目錄,所以‘./Public’這個相對位址是相對於index.php的,然而當後面加上’/Content/PageTest/show‘就不行了,難道’/Content/PageTest/show‘也是作為路徑存在的嗎,他改變了當前的路徑?他不是用來表示分組、模組、方法的虛擬路徑嗎?

還有,我發現如果寫成網站根目錄相對位址是這樣的,不理解分什麼中間還夾著一個項目名目錄?還有‘__ROOT__: 會替換成當前網站的地址(不含網域名稱)__APP__: 會替換成當前項目的URL地址 (不含網域名稱)’,難道一個網站可以包含多重專案?
__ROOT__和__APP__是什麼關係?
雖然在本地WWW檔案夾下卻是存在多重專案,但是在伺服器上正式部署不是這樣的吧?/XBlog(項目名)/Public/Theme/default/css/bootstrap.min.css"這種寫法會不會對部署有影響?


回複討論(解決方案)

可以查看thinkphp手冊:1、__ROOT__和__APP__ 為系統常量。
單個模組tpl模板裡面可以使用相對路徑來引用檔案的

可以查看thinkphp手冊:1、__ROOT__和__APP__ 為系統常量。
單個模組tpl模板裡面可以使用相對路徑來引用檔案的


你這等於什麼都沒說啊!能針對我的問題解答一下嗎?還有你難道沒發現‘__ROOT__: 會替換成當前網站的地址(不含網域名稱)__APP__: 會替換成當前項目的URL地址 (不含網域名稱)’這句話就是從thinkphp手冊粘貼的嗎?我就是沒看明白才問的好不好?

www/ 網站的根 http://localhost/
www/index.php 入口檔案 http://localhost/index.php
www/app/ 項目目錄 http://localhost/app/
www/app/... 項目中的所有檔案、目錄

www/ 網站的根 http://localhost/
www/index.php 入口檔案 http://localhost/index.php
www/app/ 項目目錄 http://localhost/app/
www/app/... 項目中的所有檔案、目錄


可是我的項目結構不是這樣的啊?

入口檔案也在APP目錄下啊,這是thinkPHP自動產生的目錄結構啊

www/ 網站的根 http://localhost/
www/index.php 入口檔案 http://localhost/index.php
www/app/ 項目目錄 http://localhost/app/
www/app/... 項目中的所有檔案、目錄


“首先,在伺服器或者本地的Web目錄下面建立一個App目錄,並且把下載的ThinkPHP架構的ThinkPHP目錄拷貝到App目錄下面,然後在App目錄下面建立一個index.php檔案,該檔案就是我們要建立項目的入口檔案。”這是thinkPHP手冊上的原話

第一個問題:
/Content/PageTest/show確實改變了路徑,因此模板中資源地址要使用相對於根目錄的路徑而非當前地址。
第二個問題:
/XBlog應該是你在www目錄下建立的專案檔夾吧,網站根目錄指的是www檔案夾而非專案檔夾
第三個問題:
/XBlog(項目名)/Public/Theme/default/css/bootstrap.min.css這種寫法對部署當然有影響,因為部署時通常將專案檔夾下的內容直接放到www檔案夾下,如果這樣就應去掉/XBlog(項目名)

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.