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