CodeIgniter 3仅首页显示图片其他页面不显示问题求助
解决CodeIgniter 3中仅首页可显示图片的问题
问题根源
- 相对路径解析错误:非首页的URL(如
/bookflix/xxx/xxx)会将相对路径image/logo.jpg解析为/bookflix/xxx/image/logo.jpg,导致找不到图片文件。 - .htaccess规则遗漏目标目录:你的Rewrite规则排除的是
images目录,但实际图片存放在image目录,请求会被转发到index.php,无法直接访问静态资源。
解决方案
方案1:修正图片路径(推荐)
使用CodeIgniter内置的base_url()函数生成绝对路径,确保所有页面的图片路径一致:
<img src="<?php echo base_url('image/logo.jpg'); ?>" alt="..." width="500">
注意:需先在
application/config/config.php中配置正确的base_url,例如:$config['base_url'] = 'http://your-domain/bookflix/';
方案2:添加HTML base标签
在页面的<head>中添加<base>标签,统一页面内相对路径的基准:
<head> <base href="<?php echo base_url(); ?>"> </head>
之后原有的图片标签即可正常使用:
<img src="image/logo.jpg" alt="..." width="500">
方案3:修正.htaccess规则
将.htaccess中排除的目录从images改为image,确保静态资源请求不会被转发到index.php:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /bookflix/ RewriteCond $1 !^(index\.php|image|css|js|robots\.txt|favicon\.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
提示:建议同时使用方案1+方案3,既保证路径正确性,又避免静态资源被不必要的路由处理。
内容的提问来源于stack exchange,提问作者Divya
相关产品推荐
相关产品推荐

