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

CodeIgniter视图引入style.css提示访问禁止的解决方法咨询

解决CodeIgniter视图中引入CSS的"Access forbidden!"问题

这问题我之前也碰到过!核心原因是CodeIgniter为了安全,默认通过根目录的.htaccess禁止了对application目录的直接访问——毕竟这个目录里存的是你的业务代码和配置文件,不能随便让外部直接访问。所以你把CSS放在application/views/public下面肯定会触发权限拦截。

下面是正确的解决步骤:

1. 调整静态资源的存放位置

首先在你的项目根目录(和application、system同级)创建一个专门的静态资源文件夹,比如命名为assets,然后在里面细分目录:

  • assets/css/:放CSS文件
  • assets/js/:放JS文件
  • assets/images/:放图片资源

把你的style.css移动到assets/css/目录下,这样就避开了被保护的application目录。

2. 正确引入CSS文件

有两种可靠的引入方式,推荐第一种:

方式一:使用CodeIgniter的URL辅助函数(推荐)

这种方式能自动适配你的项目路径,避免相对路径的坑:

  • 首先确保在application/config/config.php里设置了正确的base_url,比如本地开发可以写:
    $config['base_url'] = 'http://localhost/your-project-folder/';
    
  • 然后加载URL辅助函数:可以在控制器里临时加载$this->load->helper('url');,或者在application/config/autoload.php里把url加入自动加载的助手数组,这样全局都能用:
    $autoload['helper'] = array('url');
    
  • 最后在视图里这样写引入代码:
    <link rel="stylesheet" type="text/css" href="<?php echo base_url('assets/css/style.css'); ?>">
    

方式二:使用根相对路径

如果不想用辅助函数,也可以直接写根相对路径(注意如果项目在子目录下要加上子目录名):

<!-- 项目在网站根目录时 -->
<link rel="stylesheet" type="text/css" href="/assets/css/style.css">

<!-- 项目在子目录(比如your-project)时 -->
<link rel="stylesheet" type="text/css" href="/your-project/assets/css/style.css">

额外提醒

永远不要把静态资源放在application或system目录下——这两个目录都是CodeIgniter默认保护的,不仅会导致访问被禁止,还可能带来安全风险(比如恶意用户尝试读取你的PHP代码)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:07:53