Application.cfc vs Application.cfm,它在不同的文件夹中具有更高的优先级

时间:2017-10-31 13:57:49

标签: coldfusion coldfusion-9 application.cfc application.cfm

在我的应用程序根文件夹中,我有一个Application.cfc文件。在子文件夹中,有一个Application.cfm。当我在子文件夹中调用应用程序文件执行的脚本时:Application.cfcApplication.cfm

3 个答案:

答案 0 :(得分:4)

当您在子文件夹中调用模板时,子文件夹中的Application.cfm将被执行。

答案 1 :(得分:2)

执行Application.cfm并了解有关执行顺序的更多信息。 From the documentation:

ColdFusion如何查找和处理应用程序定义页面

  

ColdFusion使用以下规则来定位和处理   Application.cfc,Application.cfm和OnRequestEnd.cfm页面   定义特定于应用程序的元素ColdFusion定位这些的方式   文件有助于确定应用程序的结构。

     

每次ColdFusion处理页面请求时,它都会执行以下操作:

     
      
  1. 当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文件,它处理页面和   停止搜索。

    •   
  2.   
  3. ColdFusion处理请求页面的内容。
  4.   
  5. 当请求结束时,ColdFusion会执行以下操作:      
        
    • 如果您有Application.cfc,ColdFusion会处理CFC的onRequestEnd方法   并释放CFC实例。
    •   
    • 如果你没有   Application.cfc,但确实有一个Application.cfm页面,ColdFusion看起来   对于与Application.cfm相同的目录中的OnRequestEnd.cfm   页面ColdFusion用于当前页面。 ColdFusion不搜索   超出该目录,因此它不会运行OnRequestEnd.cfm页面   位于另一个目录中。另外,OnRequestEnd.cfm页面   如果应用程序上存在错误或异常,则不会运行   页面,或者如果应用程序页面执行cfabort或cfexit标记。
    •   
  6.         


      以下规则确定ColdFusion如何处理应用程序   页面和设置:

         
        
    • ColdFusion仅为每个请求处理一个Application.cfc或Application.cfm页面。如果ColdFusion页面有cfinclude标记   指向另一个ColdFusion页面,ColdFusion没有   在它的时候搜索Application.cfc或Application.cfm页面   包括附加页面。

    •   
    • 如果ColdFusion页面有cfapplication标记,它首先处理任何Application.cfc或Application.cfm,然后处理
        cfapplication标签。标签会覆盖中的设置   应用程序文件,包括应用程序名称和行为
        由cfapplication标记属性设置。

    •   
    • 您可以拥有多个使用相同应用程序名称的Application.cfc文件,Application.cfm文件和cfapplication标记。在这个中   例如,所有具有相同名称的页面共享相同的应用程序
        设置和应用范围并设置并获取中的所有变量   这个范围。 ColdFusion使用
      的参数设置   cfapplication标签或最近处理的文件,如果是   设置(例如会话超时)在文件之间有所不同。

    •   

答案 2 :(得分:0)

实际上有服务器设置也会影响application.cfc / cfm文件的执行方式。 在

  

Application.cfc / Application.cfm查找顺序

     

如果在当前项目文件夹中找不到,则选择ColdFusion搜索Application.cfm或> Application.cfc的顺序。您可以>设置ColdFusion进行搜索,如下所示:

     
      
  • 默认搜索顺序:ColdFusion从当前文件夹中查找> Application.cfc / Application.cfm文件,直到>系统根目录。在Windows上,这可以是C:\,在UNIX上,/ opt。
  •   
  • 直到web root:ColdFusion从当前文件夹中查找Application.cfc / Application.cfm>文件,直到web root。
  •   Web根目录中的
  • :ColdFusion在当前文件夹或Web根目录中查找Application.cfc / Application.cfm文件>。
  •   

CFIDE SETTINGS