注意:如果您希望使用绝对模板路径(例如, template =“/ mypath / index.cfm”)使用CFINCLUDE,你必须创建一个 使用ColdFusion Administrator映射路径。
我去了管理页面,但不知道该放什么。 我对coldfusion很新。任何人都知道为什么会发生这种情况。
答案 0 :(得分:2)
CFINCLUDE使用相对于cfinclude所在文件的相对路径,因此如果要将文件包含在另一个目录中,1。它必须位于您站点的wwwroot(或根目录或子目录)中,你可以去做其他目录......希望这有点帮助。如果你想要包含一个wwwroot之外的文件,那么当你包含它时,你需要使用上面相同的语法在Coldfusion Administrator中映射该目录。
答案 1 :(得分:0)
要添加映射,请打开coldfusion管理员。
服务器设置>映射
有两条路径。逻辑和目录。
逻辑可以是您想要的任何内容,目录是它映射到的位置。 例如。您可能在Web根目录下有一个文件夹,用于存储映射为:
的电子邮件模板logical path: /emails
directory path: /var/www/mycfapp/content/includes/emails
您可以从任何cf模板中<cfinclude template="/emails/forgotPass">
,并且可以获取映射。
您也可以使用映射来创建新对象。让我们假装忘了睡觉是一个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设置页面上勾选启用每个应用程序设置选项。
http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0b63c-7fd5.html