You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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'] = '';

问题分析

  1. .htaccess语法错误:RewriteCond规则中,!与-f/-d之间缺少空格,导致条件判断失效。服务器无法识别请求的是静态文件,将所有请求都重写到index.php,从而跳转到首页。
  2. 路径与文件名不匹配:视图代码中指定的路径是codeigniter-case/img/jonatan.jpg,但实际输出的URL包含uploads且文件后缀为.png,与实际文件结构和文件名不符。

解决方案

  1. 修复.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]
    
  2. 修正视图中的图片路径
    确保视图中的路径和文件名与实际文件一致,正确代码如下:

    <img src="<?=base_url('codeigniter-case/img/jonatan.jpg')?>">
    

    同时检查是否有其他逻辑(如上传路径变量)意外修改了图片URL,确保输出的URL与实际文件路径匹配。

  3. 验证文件存在性
    确认codeigniter-case/img/jonatan.jpg文件真实存在,避免文件名大小写、后缀名错误(如实际是.jpg却写成.png)。

内容的提问来源于stack exchange,提问作者JFeel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:10:17