CodeIgniter中背景图片无法显示问题排查求助
CodeIgniter View页面背景图片无法显示的问题排查与解决
兄弟,你这个问题是CodeIgniter开发里很常见的坑,咱们一步步捋清楚:
为什么你写的相对路径无效?
CodeIgniter是基于路由的MVC框架,浏览器解析页面时的URL路径和你的PHP文件物理路径完全不是一回事。比如你访问的是http://你的域名/home,浏览器会把../../assets/images/bg1.jpg解析成从/home目录往上跳两级,根本找不到你物理根目录下的assets文件夹,自然加载不出图片。
靠谱的解决办法有这几个:
用CodeIgniter官方的base_url辅助函数(最推荐)
首先确保application/config/config.php里的$config['base_url']已经正确配置(比如http://你的域名/),然后在View里用base_url拼接图片路径:<section id="landing" class="bg-cover centered-area clr-white" style="background-image: url('<?php echo base_url('assets/images/bg1.jpg'); ?>')">注意:要先加载url辅助函数——要么在对应的Controller里加
$this->load->helper('url');,要么在application/config/autoload.php里把url加入$autoload['helper']数组,实现全局自动加载。直接使用根相对路径(简单但有局限性)
如果你确定项目部署在网站根目录,可以直接用从根开始的路径,浏览器会自动从域名根目录查找:<section id="landing" class="bg-cover centered-area clr-white" style="background-image: url('/assets/images/bg1.jpg')">缺点:如果项目部署在子目录(比如
http://你的域名/ci-project/),这个路径就会失效,还是base_url更通用。排查文件权限与路径拼写
- 确认物理路径:根目录下的
assets/images/bg1.jpg确实存在,别拼错文件名(Linux服务器区分大小写,比如BG1.jpg和bg1.jpg是两个文件) - 检查权限:给
assets、images目录设置755权限,给bg1.jpg设置644权限,避免服务器因为权限不足无法读取文件。
- 确认物理路径:根目录下的
内容的提问来源于stack exchange,提问作者amit
相关产品推荐
相关产品推荐

