有没有一种方法可以在标记中指定组件路径?

我正在为我的应用程序使用ColdFusion组件。我的应用程序有几个文件夹,但是,每次我要使用CFC时,都必须将其保存在与那些需要访问的文件相同的目录中。这导致我创建了几个相同的CFC文件。

有没有一种方法可以将我的CFC存储在一个目录中,并使其在我的站点中正常工作?

最佳答案

正如其他人指出的那样,您可以使用定位应用程序根目录的映射和函数来做一些有趣的事情,但问题的核心是通用路径规范。

我建议您阅读Using ColdFusion Components文档中名为的部分,指定CFC位置

本质上,它的意思是,如果您的应用程序位于http://example.com/myApp/上,并且您在http://example.com/myApp/foo/bar/fubar.cfm上有一个页面想要在以下位置使用该组件:

/myApp/foo/components/library/fubar.cfc

然后fubar.cfm应该执行以下操作:
<cfset fubar=createObject("component", "myApp.foo.components.library.fubar") />

您采用文件的路径,并用点(也称为“点符号”)替换斜杠,并从要加载的组件的文件名中删除“.cfc”。

另外,您可以使用命名映射(如Aaron所述),因此,如果创建一个名为/components的映射,该映射指向/myApp/foo/components/,则createObject调用将如下所示:
<cfset fubar = createObject("component", "components.library.fubar") />

可以在<cfinvoke />中使用相同的点符号路径,作为component属性的一部分:
<cfinvoke component="components.library.fubar" ... />

关于coldfusion - 如何将CFC存储在单独的目录中并使它们工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2379717/

10-13 09:46