2011-09-19 45 views
0

注意:如果你想使用絕對模板路徑(例如, 模板=「/ mypath中/ index.cfm」)與CFINCLUDE,您必須使用的ColdFusion路徑創建 映射管理員。ColdFusion的映射錯誤

我去了管理頁面,但不知道在這裏放什麼。 我對coldfusion很新穎。任何人有任何想法,爲什麼會發生這種情況。

+0

什麼是導致錯誤的代碼行? –

回答

2

CFINCLUDE使用與cfinclude所在文件相關的相對路徑,所以如果想要將文件包含在另一個目錄中,1.它必須位於您的站點的wwwroot(或根目錄或子目錄)中,2.你可以去其他目錄做...希望這有助於一點點。如果你想包含一個不在你的wwwroot之上的文件,那麼當你包含它時,你需要使用上面相同的語法在Coldfusion Administrator中映射該目錄。

0

要添加映射,請打開您的coldfusion管理員。

服務器設置>映射

有2條路徑。邏輯和目錄。

邏輯可以是任何你想要的,目錄是它映射到的地方。 例如。你可能有下面的Web根文件夾存儲電子郵件模板映射爲:從任何CF模板

logical path: /emails 
directory path: /var/www/mycfapp/content/includes/emails 

您可以<cfinclude template="/emails/forgotPass">和映射會得到回升。

您也可以使用映射來創建新的對象。讓我們假裝forgetPass是一個cfc。

fp = new emails.forgotPass(); 

// if you have funky characters in there, eg dash, just quote it. 
fp = new "emails.forgot-pass"(); 

映射在擴展cfcs時也有效。只有一個例外。沒有領先的斜線。

component extends="emails/forgotPass" { 
    // ... 
} 

我很確定首先檢測到映射,所以如果你有一個同名的文件夾,它可能不會被拾取。

在cf9中,您也可以在Application.cfc中指定映射,而不是影響服務器上所有應用程序的coldfusion管理員。例如。

this.mappings["/emails"] = "/var/www/mycfapp/content/includes/emails"; 

您需要在cfadmin Settings頁面上勾選Enable Per App Settings選項。

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0b63c-7fd5.html