其實不管是在用CI還是ZF都有同樣一個問題,就是路徑的問題。前期,我在用ZF做CMS時,我在.htaccess文件中設置了如遇到js,css,img等資源文件都不重定向。但今天在用CI時,卻忘記了,搞了很久都沒有出來,上了CI的中國官方網,終於在他們幫助下把問題觖決了,在這里把它貼出來,供大家分享。
(另注:我這里是隱藏了url中的index.php文件的,與不隱藏有所不同,但最終都是采用絕對URL)
首先,我在.htaccess文件里設置(作用是隱藏index.php),如下:
RewriteEngine on
RewriteCond $1 !^(index/.php|images|js|img|css|robots/.txt) #在這里寫要排除的資源等
RewriteRule ^(.*)$ index.php/$1 [L]
我把JS,CSS,IMG等資源文件夾與SYSTEM文件夾放在同一級下,然后在JS文件夾中建立ajax.js文件,我在VIEW層中的文件為index.html。這樣我要引入JS時,如下:
<script type="text/javascript" src="url/js/ajax.js'?>"></script>:注這里url是你的網站絕對URL(絕對 URL,就是 http://domain/js/ajax.js 這樣叫做絕對 URL)
到這里就行了。當然為了可維護性,你也可以用CI自帶的BASE_URL來設置,如下:
進入 application/config/config.php文件,在config.php文件中設置base_url:
$config['base_url'] = http://www.exiplode/com; //這里是你的網站根目錄
設置好后 再controller某處
$this->load->helper('url'),
然后再在VIEW層中具體頁面中引入即可:
<script type="text/javascript" src='<?=base_url().'js/Ajax.js'?>'></script>
好了,CI中引入外部的JS與CSS就這么簡單.
注別的說明:“ RewriteCond $1 !^(index/.php|images|js|img|css|robots/.txt) ”這里代碼的意思是:任意你想訪問的資源都不被重定向時,都可寫在這里。有時,網站沒有加載CSS,JS(它的路徑都是正確的)時,都是被重定向了,這要注意.
