thinkphp3.2.3視圖中沒法顯示驗證碼及圖片的解決方案。

今天在作驗證碼功能的時候,發現,thinkphp視圖中引入驗證碼圖片,卻顯示一個破碎照片的小圖標,能明顯,圖片引入失敗。php

就是這個樣子:html

因而我在網上搜索怎麼解決,網上答案主要分爲如下幾種:linux

1.php沒有安裝gd庫,thinkphp

2.或者gd庫沒有開啓。windows

3.有BOM頭存在,須要用ob_clean()函數清理。函數


可仍是無論用。

我用phpinfo()打開網頁,工具

我又打開個人php.ini設置,把php_gd2.dll前面的分號去掉(取消註釋),url




但是仍是沒法顯示圖片。調試

後來我查到,php_gd2.dll是windows環境中gd庫使用時須要開啓的擴展,而我使用的是linux,在php.ini裏須要開php_gd.so。cdn

但我在個人php.ini裏沒有找到php_gd.so這個文件。

後來我決定從新編譯安裝一下gd庫,由於這樣能生成所謂的php_gd.so,

你們若是想嘗試,能夠試試,會費些時間。

雖然沒有解決個人問題,但仍是感謝這個博主的教程->:linux下編譯安裝gd庫教程。

雖然有了php_gd.so這個文件,也在php.ini裏添加這這個擴展,可是仍是沒法顯示圖片。

       從早搞到晚,實在有點崩潰。

後來,我發現,打開谷歌調試工具,圖片地址沒有報錯,說明路徑是合法的。

而當我複製圖片連接,從新打開圖片時,顯示的倒是thinkphp首頁,根本沒有定向到個人驗證碼方法。

因此我以爲時個人src地址有問題,我在視圖中使用的時tp3自帶的{:U('')}方法,



但我以爲這個方法自己因該沒有問題,因而我嘗試在上面的圖片連接中去掉admin模塊前的index.php,

再去訪問圖片連接,


終於,驗證碼這個控制器下的方法管用了,驗證碼顯示了。

在這個index.php後面不管加什麼控制器方法,都會定向到tp首頁。

但是,tp3的U方法爲何會在url裏添加一個index.php呢?

後來我發現,與thinkphp的url模式有關,thinkphp默認是pathinfo模式,

而U方法會在pathinfo模式下,自動添加index.php,生成一個路由。

而若是改爲rewrite模式,就不會添加index.php。就能訪問一個正常的方法連接。

相關文章
相關標籤/搜索