2011-09-19 81 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