ThinkPHP include失效所發現的大小寫敏感系列慘案

0x01 問題描述

TP框架寫的網站移植到Linux下後,發現首頁代碼顯示不全、部分URL失效。php

0x02 include失效

通過排查後立刻鎖定應該是這行代碼執行失效css

<include file="home@public:head" />

在Windows系統測試沒問題的,但部署到Linux系統中就失效了。仔細觀察,View層中目錄首字母爲大寫,此處函數底層會尋找目錄,Linux對大小寫敏感的,改爲html

<include file="Home@Public:head" />

問題解決。
不過光是這條語句,不少地方就有用到,慢慢改吧◑﹏◐,還有各個地方的URL路徑也得檢查一遍,是否由於大小寫致使失效。markdown

0x03 URL失效

好比說Index控制器中的:框架

public function myTest() {
    $this -> display();
}

若是/View/Index目錄下只有mytest.html而不是MyTest.html那麼在Linux中就會找不到模板,Windows中是有效的。
還有指定視圖文件的寫法:函數

public function myTest() {
    $this -> display("Index:hello");
}

若是寫成下面這樣也會失效:測試

public function myTest() {
    $this -> display("index:hello");
}

…等等,只要涉及文件路徑查找的,都要注意大小寫敏感網站

0x04 深入總結

在開發過程當中,必定要注意開發規範,注意大小寫敏感,即便是在Windows開發環境中也是如此,畢竟是要部署到Linux生產環境中去的。
神父,我有罪,辜負了黨和人民對個人指望,下面是反省:
《臥春》
暗梅幽聞花,
臥枝傷恨底。
遙聞臥似水,
易透達春綠。
岸似綠,
岸似透綠,
岸似透黛綠。ui

【轉載請註明出處: http://blog.csdn.net/leytton/article/details/79518760
PS:若是本文對您有幫助,請點個贊讓我知道哦~微笑this

相關文章
相關標籤/搜索