首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Railo中的组件映射

Railo中的组件映射
EN

Stack Overflow用户
提问于 2012-08-22 20:58:19
回答 2查看 3K关注 0票数 6

我想把我所有的CFC放到/components文件夹中,这样就可以在应用程序中的不同地方调用它们了。来自/forums/index.cfm。

我该如何设置映射呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-22 21:07:16

总结...

有多种方法可以设置映射,实际上有两种不同类型的映射:

传统的映射是通过管理员创建的,可以在代码中的任何地方使用。Railo支持这种类型的每个上下文和每个服务器的映射。

  • 还有一个每个应用程序的映射,可以在Application.cfc中创建,也可以通过cfapplication标记创建,它可以在大多数地方使用,但它是运行时构造,所以不能在编译时使用。

此外,如果您有全局组件,您可能希望避免使用映射,而只是告诉Railo您的组件在哪里,以便您可以直接访问它们。

创建每个上下文的映射:

转到Railo Admin (即http://domain/railo-context/admin/web.cfm ),在刚刚超过一半的菜单中,你会发现“档案和资源”,其中是“映射”。

在虚拟列中输入/components,在资源列中输入该目录的绝对路径(例如/home/user/public_html/components ),然后按保存按钮。

您还可以使用带有"updateMapping“操作的cfadmin tag,以编程方式创建每个上下文的映射。

(这里的所有内容也适用于每个服务器的映射,除了使用Server Admin而不是Web Admin。每台服务器的映射在Web Admin界面中可见,但为只读。)

创建每个应用程序的映射:

要仅为特定应用程序创建映射,可在Application.cfc中执行此操作

只需创建一个名为this.mappings的变量,该变量包含您的虚拟值和资源值的结构,例如:

代码语言:javascript
复制
This.Mappings = { '/components' : '/home/user/public_html/components' }

然后,此映射将仅应用于该应用程序,从而允许您对不同应用程序的不同位置具有相同的映射点。

Railo还允许通过使用cfapplication标记在Application.cfm中创建每个应用程序的映射,如下所示:

代码语言:javascript
复制
<cfset MappingStruct = { '/components' : '/home/user/public_html/components' } />
<cfapplication mappings=#MappingStruct# />

注意:应用程序级映射有一些限制,因为它们存在于运行时,而不是在编译时(因此,例如,它们不能用于自定义标记库,在自定义标记库中,标记库属性在编译模板时计算)。

使用映射引用组件:

这两个选项中的任何一个都可以让您执行以下操作:

代码语言:javascript
复制
MyObj = createObject('component','components.NameOfFile').init()

或者:

代码语言:javascript
复制
MyObj = new components.NameOfFile()

(请注意,您不能像使用映射时那样使用/component/nameoffile。)

没有映射的全局组件:

如果您想在没有映射的情况下全局访问组件,请转到components部分(就在菜单中Mappings的下方),并在"Additional Resources“部分中输入您的绝对组件路径。(不勾选Trusted。)

然后,您可以简单地创建您的对象,而不需要components.映射:

代码语言:javascript
复制
MyObj = new NameOfFile()
票数 9
EN

Stack Overflow用户

发布于 2012-08-22 21:05:07

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12073714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档