Codeigniter 3.x本地CSS、JS及图片无法加载求助
解决CodeIgniter 3.x静态资源(CSS/JS/图片)无法加载的问题
嘿,我来帮你搞定这个头疼的问题!你遇到的静态资源加载失败,核心原因是你的.htaccess规则配置出了问题——它没有正确把静态资源请求导向实际文件,反而让CodeIgniter把这些路径当成了控制器/方法/参数来解析。
先拆解下你当前.htaccess的问题:
DirectoryIndex没指定默认入口文件,服务器不知道该用index.php作为CI的访问入口- 最后的
RewriteRule规则写错了,它没有把非静态资源的请求转发到CI的入口文件,反而直接指向原路径,导致CI错误解析静态资源请求
修改后的.htaccess配置
把你的.htaccess替换成下面的内容:
DirectoryIndex index.php RewriteEngine on # 排除静态资源目录和文件,不让CI解析这些请求 RewriteCond $1 !^(index\.php|img|assets|css|js|robots\.txt|favicon\.ico|logo\.png) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 把所有非静态/非存在的请求转发到CI入口index.php RewriteRule ^(.*)$ index.php/$1 [L,QSA]
额外需要检查的几个点
确保base_url配置正确
打开application/config/config.php,设置正确的项目根URL:$config['base_url'] = 'http://localhost/你的项目目录/';引用静态资源时,尽量用CI的
base_url()辅助函数生成路径,避免相对路径出错:<link rel="stylesheet" href="<?php echo base_url('css/style.css'); ?>"> <script src="<?php echo base_url('js/script.js'); ?>"></script> <img src="<?php echo base_url('img/logo.png'); ?>" alt="Logo">检查目录权限
确保css、js、img这些静态资源目录的权限是服务器可读的(一般目录设为755,文件设为644),避免因为权限问题导致资源无法访问。
这样修改后,静态资源请求会被正确指向实际文件,不会再被CI当成路由请求处理啦!
内容的提问来源于stack exchange,提问作者Harry




