在我的应用程序根文件夹中,我有一个Application.cfc
文件。在子文件夹中,有一个Application.cfm
. 当我在应用程序文件执行的子文件夹中调用脚本时:Application.cfc
或Application.cfm
?
3 回答
当您调用子文件夹中的模板时,Application.cfm
将执行子文件夹中的模板。
Application.cfm 被执行并了解有关执行顺序的更多信息。 从文档中:
ColdFusion 如何查找和处理应用程序定义页面
ColdFusion 使用以下规则来定位和处理定义应用程序特定元素的 Application.cfc、Application.cfm 和 OnRequestEnd.cfm 页面。ColdFusion 定位这些文件的方式有助于确定您如何构建应用程序。
每次 ColdFusion 处理页面请求时,它都会执行以下操作:
当 ColdFusion 开始处理请求时,它会执行以下操作:
它在页面目录中搜索名为 Application.cfc 的文件。如果存在,它会创建一个新的 CFC 实例,处理初始事件并停止搜索。 (ColdFusion 为每个请求创建一个新
的 CFC 实例并处理其初始化代码。)如果请求页面的目录没有 Application.cfc 文件,它会检查目录中的 Application.cfm 文件。如果
存在,ColdFusion 逻辑上将 Application.cfm 页面包含在请求页面的开头并停止进一步搜索。如果所请求页面的目录没有 Application.cfc 或 Application.cfm 文件,ColdFusion 会向上搜索目录树并首先检查每个目录中的 Application.cfc 文件,如果找不到,则查找 Application.cfm 页面, 直到到达根目录(如 C:)。当它找到 Application.cfc 或 Application.cfm 文件时,它会处理该页面并停止搜索。
- ColdFusion 处理请求页面的内容。
- 当请求结束时,ColdFusion 会执行以下操作:
- 如果您有 Application.cfc,ColdFusion 将处理 CFC 的 onRequestEnd 方法并释放 CFC 实例。
- 如果您没有 Application.cfc,但有 Application.cfm 页面,ColdFusion 会在与 ColdFusion 用于当前页面的 Application.cfm 页面相同的目录中查找 OnRequestEnd.cfm。ColdFusion 不会搜索该目录之外的内容,因此它不会运行驻留在另一个目录中的 OnRequestEnd.cfm 页面。此外,如果应用程序页面出现错误或异常,或者应用程序页面执行 cfabort 或 cfexit 标记,则 OnRequestEnd.cfm 页面不会运行。
以下规则确定 ColdFusion 如何处理应用程序页面和设置:
ColdFusion 只为每个请求处理一个 Application.cfc 或 Application.cfm 页面。如果 ColdFusion 页面具有指向附加 ColdFusion 页面的 cfinclude 标记,则当 ColdFusion 包含附加页面时,它不会搜索 Application.cfc 或 Application.cfm 页面。
如果 ColdFusion 页面具有 cfapplication 标记,它首先处理任何 Application.cfc 或 Application.cfm,然后处理
cfapplication 标记。该标记覆盖
应用程序文件中的设置,包括应用程序名称和
由 cfapplication 标记属性设置的行为。您可以拥有多个使用相同应用程序名称的 Application.cfc 文件、Application.cfm 文件和 cfapplication 标记。在这种
情况下,所有具有相同名称的页面共享相同的应用程序设置和应用程序范围,并设置和获取 此范围内
的所有变量。
ColdFusion 使用
cfapplication 标签或最近处理的文件的参数设置,如果
设置(例如会话超时)在文件之间不同。
实际上,有些服务器设置也会影响 application.cfc/cfm 文件的执行方式。在里面
Application.cfc/Application.cfm 查找顺序
选择 ColdFusion 搜索 Application.cfm 或 >Application.cfc(如果在当前项目文件夹中未找到)的顺序。您可以 > 将 ColdFusion 设置为搜索如下:
- 默认搜索顺序:ColdFusion 从当前文件夹中查找 >Application.cfc/Application.cfm 文件,直到 >system 根目录。在 Windows 上,这可能是 C:\,在 UNIX 上,可能是 /opt。
- 直到 Web 根目录:ColdFusion 从当前文件夹到 Web 根目录查找 Application.cfc/Application.cfm > 文件。
- 在 Web 根目录中:ColdFusion 在当前文件夹或 Web 根目录中查找 Application.cfc/Application.cfm 文件。