初学thinkphp,出现一个问题,在模板文件里面引用图片,首页的html能够显示,但是其他页面却不显示.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学thinkphp,出现一个问题,在模板文件里面引用图片,首页的html能够显示,但是其他页面却不显示.相关的知识,希望对你有一定的参考价值。

下面是登陆页面,图片引用不了文件在 tpl/login/index.html

<form action="__URL__/addtodo" method="post" name="login_form">
用户名:<input type="text" name="username"></br>
密 码:<input type="password" name="password"></br>
验证码:<input type="text" name="verify"> <img src='__APP__/Public/verify/' onclick="this.src=this.src+'?'+Math.random()"/></br>
<img src='.__PUBLIC__/images/login.gif' />
</form>
急急急!在线等

参考技术A 试下把点去掉或者把点换成/ 参考技术B 这是引用路径的问题追问

我也知道,但是不知道怎么解决啊,用的是相对路径,首页可以成功引用 内页就不行

追答

引用的相对路径不正确。 你这样的引用 是相对于当前页。 而不是相对于主目录。

thinkphp 验证码

   thinkphp中的验证码是可以直接调用的,非常方便,我们看一下 Think 文件夹下 有一个名为verify.class.php的文件

   首先 我们要有一个模板,在view文件夹下写了一个名为 xx.html的文件,里面啥也没写, 这时 我们要在这个文件里面显示出验证码来  

 function xx()
{
   $this->show();
}
function yzm()
{
   $yzm=new \Think\verify();
   $yzm->entry();
}

想要验证码显示出来,那么我们就需要调一下yzm方法了,在xx.html中表示为

<div>
    <img src="__CONTROLLER__/yzm" id="img1"/>
</div>

这样就可以把验证码调出来了 ,验证码调出来之后我们需要使用它,那么在xx.html中会有一个input表单  会有验证的按钮 

<div>
    <input type="text" id="va"/>
    <input type="button" id="btn"/>
</div>

下面我写的js部分用的是jquery  所以前面必须要引入jquery包的

<script type="text/javascript">
    $("#btn").click(function(){
        var va = $("#va").val();
       $.ajax({
          url:"__CONTROLLER__/yz",
          data:{va:va},
          type:"POST",
          dataType:"TEXT",
          success:function(data){
               if(data)
                {
                     alert("验证成功");
                }
              else
                   {
                          alert("验证失败");
                   }          
          }

        });
   })

</script>

现在我们去写yz的方法

function yz()
{
    $yzm=new \Think\verify();
    $va=$_POST["va"];
     $aa=$yzm->check($va);
    $this->ajaxReturn($aa,"eval");
}

 这样写完了之后,我们会发现一个问题 就是点击图片的时候不会自动换,那么我们就要给图片加一个点击事件,每点击一次 就让路径再重新走一遍

$("#img1").click(function(){
//如果只是在除了ie浏览器的其他浏览器上运行  
 $(this).attr("src","__CONTROLLER__/yzm");
//如果要增加其兼容性的话,那么我们就要取一个随机数了

$a=Math.random()*10;
 $(this).attr("src","__CONTROLLER__/yzm/aa"+a);

})

 

 

 

 

 

以上是关于初学thinkphp,出现一个问题,在模板文件里面引用图片,首页的html能够显示,但是其他页面却不显示.的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP如何连接模板里面的字符串

thinkphp里面导入csv数据出现乱码怎么破

thinkPHP 安装好了 目录怎么建的? 具体点 入口文件 模板配置

thinkphp 怎么替换模板里面的字符

thinkphp 验证码

thinkphp-在模板中使用原生PHP