我有一个我使用cfc的页面。像这样:
<cfset cfcDashboard = new dashboard()>
<cfset grab_image = cfcdashboard.getPicture()>
如果cfc位于文件夹中,我如何调用它?到目前为止,只有当它们位于同一级别或同一文件夹内时才能工作?你如何称呼不同级别的cfc?
或者我不理解cfc的目的?
答案 0 :(得分:4)
new
关键字是此次调用的语法糖:
<cfset cfcDashboard = createObject("component", "Dashboard")>
ColdFusion如何解析CFC名称的规则是in the docs。
如果您使用
cfinvoke
或cfobject
代码或CreateObject
函数,从CFML页面访问CFC,ColdFusion搜索 目录按以下顺序排列:
- 调用CFML页面的本地目录
- Web root
- 在ColdFusion Administrator的自定义标记路径页面上指定的目录
醇>
您可以使用与任何已定义搜索路径对应的点表示法。
<cfset myDashboard = createObject("component", "my.custom.Dashboard")>
<cfset myDashboard = new my.custom.Dashboard()>
将找到(其中.
表示当前模板目录,/
表示网络根目录):
./my/custom/Dashboard.cfc
/my/custom/Dashboard.cfc
any/custom/tag/path/my/custom/Dashboard.cfc
不可能“向上”。
答案 1 :(得分:-1)
当然,没有办法“上”,但有一种方法可以使您从网站的顶层开始。
将此行放置在根Application.cfc文件中
<cfset this.directory = getDirectoryFromPath( getCurrentTemplatePath() ) />
<cfset this.mappings['/app'] = this.directory />
然后,当您键入cfinvoke行时,请像这样键入
当然,您想用组件所在的文件夹替换[子文件夹名称],并用组件的名称替换[组件名称]。其他所有内容都是普通的cfinvoke语法。
因此,以一种环岛的方式,有一种方法可以从子文件夹开始“启动”。