在thinkphp中,一切涉及到链接和跳转的地方,都会按统一的格式http://hostname/index.php/modoule/controller/method这样的方法来访问。
比如在一个html的form表单中,action指定为action="{:url('index/user/logincheck')},实际上调用的就是
http://hostname/index.php/index/user/logincheck,也就是application/index/user.php中定义的logincheck方法。
同样,当我们在模板中要加载一张图片时,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><img src="static/images/www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico">自由国度</title>
</head>
<body>
<img src="static/images/www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico">
<h2>welcome to my page</h2>
</body>
</html>
同样,thinkphp会使用http://hostname/index.php/static/images/www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico
这样的方式去访问这个ico,把static,images,www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico分别当成了模块名,控制器名,方法名
而我们是希望访问的是url根路径(public)下面的static/images/路径下的www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico文件
只需要把static 修改为__STATIC__即可。同时,上面代码中企图在标题栏添加icon的方式是不对的。应该使用link元素.
修改后代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="icon" href="__STATIC__/images/www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico" type="image/x-icon">
<!--上面这行中"www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico"是icon图片的名字,并不是网络图片。图片路径就是public/static/images/-->
<title>自由国度</title>
</head>
<body>
<img src="__STATIC__/images/www.ico.la_7f8bf3729c52f9daafd47bb20c490421_32X32.ico">
<h2>welcome to my page</h2>
</body>
</html>