CI-CodeIgniter框架以前有过关注,近期有个小项目打算来用一下,发现其在application文件下的访问权限被限制了,一些资源文件CSS,JS,img等资源文件都没法正常加载,谷歌,百度之后,发现有好多朋友碰到相似的问题,使用CI框架css文件没法加载,js文件没法加载,图片文件没法加载等等相似的问题,解决的方法也是多种多样,其中一种是将资源文件和application文件剥离,把资源文件放到根目录,而后用CI自带的函数的调用,感受这样会给开发带来一些不便利,影响项目的完整性。css
经过修改.htaccess文件增长css,js,img等类型资源文件的访问权限,来解决CI-CodeIgniter框架不能加载css文件,js文件和图片格式文件等类型文件的方法:apache
因而,经过寻找发现,在application文件夹下有个.htaccess的文件,其中的配置影响的目录的访问和权限。目前开发使用的CI版本是3.1.6,application目录结构以下:app
.htaccess文件的初始内容是这样的:框架
<IfModule authz_core_module> Require all denied </IfModule> <IfModule !authz_core_module> Deny from all </IfModule>
限制了本目录被任意用户访问,因此访问用户访问都显示403禁止访问。访问本文件夹下的文件,是行不通的,不管是是否已经设置了CI的配置文件的base_url()参数仍是别的什么方法:函数
若是修改下.htaccess文件,使用apache的FilesMatch指令,排除一些资源文件,可让用户正常访问,css,js,img等类型的文件ui
<IfModule authz_core_module> Require all denied <FilesMatch "\.(css|js|jpe?g|png|csv)$"> Require all granted </FilesMatch> </IfModule> <IfModule !authz_core_module> Deny from all </IfModule>
增长该指令之后,刷新页面,该文件下指定扩展名类型的资源文件就能够访问了,并且项目的开发文件和资源都在一个目录下,方便管理和打包。没有其余的反作用。url