2013-05-06 31 views
0

所有這些日子裏,我認爲CodeIgniter不允許直接訪問應用程序中的文件(我的意思是應用程序本身而不是應用程序文件夾)。CodeIgniter相對路徑或基本URL功能?

所以,如果我有文件夾下的以下結構,WWW:

ROOT 
|____APPLICATION 
     |___________JS/mine.js 
     |___________VIEWS/my_view.php 

如果我想在my_view.phpmine.js,我需要使用base_url()功能如下引用的JS文件:

<script type="text/javascript" src="<?php echo base_url();?>js/mine.js"></script> 

看起來我錯了,我也可以參考它。喜歡:

<script type="text/javascript" src="../js/mine.js"></script> 

有什麼想法/意見嗎?

哪一個是一個很好的做法?爲什麼?

+0

好像你刪除/修改htaccess文件....反正相對URL將無法正常工作在所有情況都是如此。 – itachi 2013-05-06 17:04:13

回答

8

使用base_url()總是一個聰明的想法,所以如果您的URL更改,所有的鏈接不會中斷。

base_url()將要返回完整TLD,再加上任何文件夾中的網站是。

最佳做法是讓你的資產,這一應用程序,或任何其他系統文件夾。最笨的網站將構建他們的資產情況如下:

ROOT 
|____APPLICATION 
|____ASSETS 
|  |________ CSS 
|  |________ JS 
|  |________ IMG 
|____SYSTEM 

然後像這樣引用:

<script type="text/javascript" src="<?php echo base_url('assets/js/mine.js')"></script> 
+2

是的,甚至更好(如果你可以在你的主機上做到這一點)把應用程序和系統文件夾放在ROOT(www或public_html文件夾)外面,所以當服務器出現問題或者你的網站被黑客攻擊時,只有你的資產可以被入侵者。 – Derfder 2013-05-06 17:07:02

+0

我已經看到很多關於如何鏈接到CI資產的瘋狂解釋,但這是迄今爲止使用現有CI方法最直接的方式。謝謝。 – 2013-08-30 13:50:13

4

使用MVC將所有資產文件夾(css,js和images)保存在根目錄中而不是保留在應用程序或任何其他文件夾中並使用base_url訪問它們總是一個好主意。

<script type="text/javascript" src="<?php echo base_url();?>js/mine.js"></script> 

因此,我認爲你提到的上述行是正確的方法。