cfinclude
Description
Embeds references to ColdFusion pages in CFML. You can embed cfinclude tags recursively. For another way to encapsulate CFML, see cfmessagebox. (A ColdFusion page was formerly sometimes called a ColdFusion template or a template.)
Categories
Related
History
ColdFusion
MX: Changed error behavior: if you use this tag to include a CFML page
whose length is zero bytes, you do not get an error.
Syntax
<cfinclude
template = "template name">
Note: You
can specify this tag’s attributes in an attributeCollection attribute
whose value is a structure. Specify the structure name in the attributeCollection attribute
and use the tag’s attribute names as structure keys.
Attributes
| Attribute | Description | Required | Default |
|---|---|---|---|
| template | A logical path to a ColdFusion page. | Required |
Usage
ColdFusion searches for included files in the following locations:
In the directory of the current page or a directory relative to the current page
In directories mapped in the ColdFusion Administrator
You cannot specify an absolute URL or file system path for the file to include. You can only use paths relative to the directory of the including page or a directory that is registered in the ColdFusion Administrator Mappings. The following cfinclude statements work, assuming that the myinclude.cfm file exists in the specified directory:
<cfinclude template="myinclude.cfm"> <cfinclude template="../myinclude.cfm"> <cfinclude template="/CFIDE/debug/myinclude.cfm"> But the following do not work:
<cfinclude template="C:\ColdFusion\wwwroot\doccomments\myinclude.cfm"> <cfinclude template="http://localhost:8500/doccomments/myinclude.cfm"> The included file must be a syntactically correct and complete CFML page. For example, to output data from within the included page, you must have a cfoutput tag, including the end tag, on the included page, not the referring page. Similarly, you cannot span a cfif tag across the referring page and the included page; it must be complete within the included page.
You can specify a variable for the template attribute, as the following example shows:
<cfset templatetouse="../header/header.cfm"> <cfinclude template="#templatetouse#">
In the directory of the current page or a directory relative to the current page
In directories mapped in the ColdFusion Administrator
You cannot specify an absolute URL or file system path for the file to include. You can only use paths relative to the directory of the including page or a directory that is registered in the ColdFusion Administrator Mappings. The following cfinclude statements work, assuming that the myinclude.cfm file exists in the specified directory:
<cfinclude template="myinclude.cfm"> <cfinclude template="../myinclude.cfm"> <cfinclude template="/CFIDE/debug/myinclude.cfm"> But the following do not work:
<cfinclude template="C:\ColdFusion\wwwroot\doccomments\myinclude.cfm"> <cfinclude template="http://localhost:8500/doccomments/myinclude.cfm"> The included file must be a syntactically correct and complete CFML page. For example, to output data from within the included page, you must have a cfoutput tag, including the end tag, on the included page, not the referring page. Similarly, you cannot span a cfif tag across the referring page and the included page; it must be complete within the included page.
You can specify a variable for the template attribute, as the following example shows:
<cfset templatetouse="../header/header.cfm"> <cfinclude template="#templatetouse#">
Example
<!--- This example shows the use of cfinclude to paste CFML or HTML code into another page
dynamically. --->
<h4>This example includes the dochome.htm page from the CFDOCS directory. The images do not
display, because they are located in a separate directory. However, the page appears
fully rendered within the contents of this page.</h4>
<cfinclude template = "../cfdocs/dochome.htm">