我想把我所有的CFC放到/components文件夹中,这样就可以在应用程序中的不同地方调用它们了。来自/forums/index.cfm。
我该如何设置映射呢?
发布于 2012-08-22 21:07:16
总结...
有多种方法可以设置映射,实际上有两种不同类型的映射:
传统的映射是通过管理员创建的,可以在代码中的任何地方使用。Railo支持这种类型的每个上下文和每个服务器的映射。
此外,如果您有全局组件,您可能希望避免使用映射,而只是告诉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的变量,该变量包含您的虚拟值和资源值的结构,例如:
This.Mappings = { '/components' : '/home/user/public_html/components' }然后,此映射将仅应用于该应用程序,从而允许您对不同应用程序的不同位置具有相同的映射点。
Railo还允许通过使用cfapplication标记在Application.cfm中创建每个应用程序的映射,如下所示:
<cfset MappingStruct = { '/components' : '/home/user/public_html/components' } />
<cfapplication mappings=#MappingStruct# />注意:应用程序级映射有一些限制,因为它们存在于运行时,而不是在编译时(因此,例如,它们不能用于自定义标记库,在自定义标记库中,标记库属性在编译模板时计算)。
使用映射引用组件:
这两个选项中的任何一个都可以让您执行以下操作:
MyObj = createObject('component','components.NameOfFile').init()或者:
MyObj = new components.NameOfFile()(请注意,您不能像使用映射时那样使用/component/nameoffile。)
没有映射的全局组件:
如果您想在没有映射的情况下全局访问组件,请转到components部分(就在菜单中Mappings的下方),并在"Additional Resources“部分中输入您的绝对组件路径。(不勾选Trusted。)
然后,您可以简单地创建您的对象,而不需要components.映射:
MyObj = new NameOfFile()发布于 2012-08-22 21:05:07
您应该在Application.cfc中定义映射。请查看以下相关问题
railo application.cfc this.mappings not working
How can I include mappings into Application.cfc from external property file?
https://stackoverflow.com/questions/12073714
复制相似问题