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。就能访问一个正常的方法连接。

相关文章
相关标签/搜索