CodeIgniter图片无法访问:点击链接跳转首页问题求助
CodeIgniter图片访问跳转到首页问题解决
问题现象
在CodeIgniter项目中,点击图片链接会直接跳转到首页,图片URL无法正常加载。
环境信息
文件结构
-codeigniter-case --application --system --img ---jonatan.jpg
视图代码
<img src="<?=base_url()?>codeigniter-case/img/jonatan.jpg"> // 实际输出URL:http://localhost:8080/codeigniter-case/uploads/img/jonatan.png
.htaccess配置
RewriteEngine ON RewriteCond %{REQUEST_FILENAME}! -f RewriteCond %{REQUEST_FILENAME}! -d RewriteRule ^(.*)$ index.php/$1 [L]
config.php配置
$config['base_url'] = 'http://localhost:8080/'; $config['index_page'] = '';
问题分析
- .htaccess语法错误:
RewriteCond规则中,!与-f/-d之间缺少空格,导致条件判断失效。服务器无法识别请求的是静态文件,将所有请求都重写到index.php,从而跳转到首页。 - 路径与文件名不匹配:视图代码中指定的路径是
codeigniter-case/img/jonatan.jpg,但实际输出的URL包含uploads且文件后缀为.png,与实际文件结构和文件名不符。
解决方案
修复.htaccess配置
修改RewriteCond的语法,确保!与-f/-d之间格式正确,可选两种写法:RewriteEngine ON RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]或:
RewriteEngine ON RewriteCond %{REQUEST_FILENAME} ! -f RewriteCond %{REQUEST_FILENAME} ! -d RewriteRule ^(.*)$ index.php/$1 [L]修正视图中的图片路径
确保视图中的路径和文件名与实际文件一致,正确代码如下:<img src="<?=base_url('codeigniter-case/img/jonatan.jpg')?>">同时检查是否有其他逻辑(如上传路径变量)意外修改了图片URL,确保输出的URL与实际文件路径匹配。
验证文件存在性
确认codeigniter-case/img/jonatan.jpg文件真实存在,避免文件名大小写、后缀名错误(如实际是.jpg却写成.png)。
内容的提问来源于stack exchange,提问作者JFeel
相关产品推荐
相关产品推荐

