Coldfusion MX技巧精華收集之2第1/6頁

設定你的根目錄 

作者: Kyle 2/16/03 

內容: 

設定你的根目錄
網站開發人員向來都一直必須在相對路徑 vs. 絕對路徑這項議題上面打轉。在 ColdFusion 環境裏面,你可以在多個不同頁面使用 CFINCLUDE 卷標,不過既然我們對於在哪個目錄裏面將會用到 CFINCLUDE 語法,因此在 CFINCLUDE 卷標裏面使用相對路徑經常會造成很多麻煩。 

舉例來說,某個被包含的選單裏面可能有一個指向網站首頁的連結,像下面這樣: 

<A HREF="index.cfm">Home Page</A> 
在網站根目錄下面的任何檔案引入這個包含檔都不會有問題。但是如果你在某個次目錄下的一個檔案裏面引入這個選單檔案,那麼上面這個超鏈接便會失效,或者至少會連結到錯誤的頁面去。這時候你實際上會希望這個超鏈接是寫成這樣: 

<A HREF="../index.cfm">Home Page</A> 
有兩種方式可以克服這個問題。一個是在超鏈接裏面直接使用絕對路徑。要使用這個作法,你必須在 ColdFusion 裏面預先設定好一個路徑對應關係(mapping)。你可以在 ColdFusion 管理員(ColdFusion Administrator)的「路徑對應(Mappings)」區塊裏面建立這些對應關係。一旦你建立好了路徑對應關係,你便可以把指向網站首頁的超鏈接寫成下面這個樣子: 

<A HREF="/mymapping/index.cfm>Home Page</A> 
如果你使用了絕對路徑,那麼不論你在那個位置引入這個檔案,該檔案裏面的超鏈接永遠都會保持有效。我通常使用一個叫做 APPLICATION.RootDir 的應用程序變量來儲存這項路徑對應設定,並且在超鏈接裏面直接套用這個變量。使用這個作法,如果我真有必要修改目錄結構或者路徑對應的名稱,那麼我只需要修改這麼一個變量的值就可以了。 

<CFSET APPLICATION.RootDir = "/MyMapping"> 
如果你套用這個變量,你的超鏈接看起來會像下面這樣: 

<A HREF="#APPLICATION.RootDir#/index.cfm"> 
在每個頁面的開端建立這樣的變量,那麼你就可以在該頁面的其它部分套用這個變量的值。包含檔案運作起來就像該檔案的內容實際上真的被寫入原有頁面一樣,因此如果檔案 A 引入了檔案 B,那麼在檔案 B 裏面我們便可以直接參照到檔案 A 裏面的變量值: 

<!--- 在每個頁面設定 RootDir 變量值 --->
<CFSET RootDir ="../">
<!--- 在被引入的頁面中參照 RootDir 變量的值(只要確定這個變量確實有被定義即可,否則在引入檔案的時候會出現錯誤訊息) --->
<A HREF="#RootDir#news/newspage.cfm"></code>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章