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

本地XAMPP服务器中CodeIgniter静态资源加载404错误求助

解决CodeIgniter本地XAMPP环境静态资源404问题

我之前在本地用XAMPP开发CodeIgniter项目时也碰到过一模一样的问题——线上跑的好好的,本地所有CSS/JS全报404,折腾了好一阵才搞定,给你几个针对性的排查和解决方法:

1. 绝对路径导致的本地根目录不匹配

线上环境你的项目大概率是部署在服务器的根目录下,所以/assets/xxx这种绝对路径能直接指向项目的assets文件夹,但本地XAMPP里,你的项目肯定是放在htdocs的子文件夹里(比如htdocs/company-website)。这时候浏览器请求/assets/xxx会去localhost/assets找,而实际资源在localhost/company-website/assets,自然404。

解决方法:用CodeIgniter的base_url()生成路径

不要硬写绝对路径,改用框架自带的base_url()函数来拼接资源地址,它会自动适配本地和线上的根路径:

<link rel="stylesheet" type="text/css" href="<?php echo base_url('assets/public/plugins/foundation/css/foundation.min.css'); ?>"/>
<script type="text/javascript" src="<?php echo base_url('assets/public/js/jquery.min.js'); ?>"></script>

别忘了先在application/config/config.php里设置正确的base_url:

// 本地环境
$config['base_url'] = 'http://localhost/你的项目文件夹名称/';
// 线上环境
$config['base_url'] = 'https://你的域名/';

2. .htaccess的RewriteBase配置错误

如果你的项目去掉了URL里的index.php(用了路由重写),本地的.htaccess文件可能没设置正确的RewriteBase,导致Apache无法正确解析静态资源的路径。

解决方法:在.htaccess开头添加RewriteBase

打开项目根目录的.htaccess,在RewriteEngine On下面加上你的项目子文件夹名称:

RewriteEngine On
RewriteBase /你的项目文件夹名称/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

3. 本地文件权限问题

虽然XAMPP默认权限比较宽松,但偶尔也会出现Apache无法读取assets文件夹的情况,尤其是在Mac/Linux系统下。

解决方法:调整assets文件夹权限

  • Windows:右键assets文件夹 → 属性 → 安全 → 给Everyone添加读取权限
  • Mac/Linux:打开终端,进入项目根目录,执行命令:
chmod -R 755 assets/

4. 快速验证:直接访问资源URL

不确定是路径还是配置问题?直接在浏览器地址栏输入资源的完整本地URL,比如:

http://localhost/你的项目文件夹名称/assets/public/css/styles.css

如果能打开,说明是路径写法问题;如果还是404,那就是文件不存在或者权限/服务器配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:22:18