CodeIgniter经过修改.htaccess文件的办法解决加载css js 图片类型文件的方法

CI-CodeIgniter框架以前有过关注,近期有个小项目打算来用一下,发现其在application文件下的访问权限被限制了,一些资源文件CSS,JS,img等资源文件都没法正常加载,谷歌,百度之后,发现有好多朋友碰到相似的问题,使用CI框架css文件没法加载,js文件没法加载,图片文件没法加载等等相似的问题,解决的方法也是多种多样,其中一种是将资源文件和application文件剥离,把资源文件放到根目录,而后用CI自带的函数的调用,感受这样会给开发带来一些不便利,影响项目的完整性。css

经过修改.htaccess文件增长css,js,img等类型资源文件的访问权限,来解决CI-CodeIgniter框架不能加载css文件,js文件和图片格式文件等类型文件的方法:前端

因而,经过寻找发现,在application文件夹下有个.htaccess的文件,其中的配置影响的目录的访问和权限。目前开发使用的CI版本是3.1.6,application目录结构以下:apache

.htaccess文件的初始内容是这样的:app

<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等类型的文件。函数

<IfModule authz_core_module>
    Require all denied
    <FilesMatch "\.(css|js|jpe?g|png|gif|csv)$">
        Require all granted
    </FilesMatch>
</IfModule>
<IfModule !authz_core_module>
    Deny from all
</IfModule>

增长该指令之后,刷新页面,该文件下指定扩展名类型的资源文件就能够访问了,并且项目的开发文件和资源都在一个目录下,方便管理和打包。没有其余的反作用。学习

刚才不能被访问的css文件如今能够正常访问了,我这边是放在views文件夹下的template文件夹中的静态资源文件中,这样设置之后,你能够根据实际须要把css,js,img等资源类文件放置到该目录下的任何位置,都不影响访问。ui

至此,问题解决,感受CI总体对于前端模板处理有些过于简单,刚接触的用户,若是按照以前的方式来加载css,js,img文件,刷新项目页面后,页面没有排版,各类资源文件直接来个403,简直是一脸懵逼,文档中关于前端模板处理流程也是简单的带过,没有什么说明,有点太敏捷了,敏捷过头了,学习成本反而增长了也不是个好事~~~url

相关文章
相关标签/搜索