gpt4 book ai didi

coldfusion - Railo中的组件映射

转载 作者:行者123 更新时间:2023-12-04 13:41:57 24 4
gpt4 key购买 nike

我想将所有CFC放入/components文件夹,并能够从应用程序的不同位置调用它们,例如。来自/forums/index.cfm。

我将如何设置映射?

最佳答案

概括...

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

  • 传统的映射是通过admin创建的,可以在CFML代码中的任何位置使用。 Railo支持此类型的按上下文和按服务器的映射。
  • 在Application.cfc中或通过cfapplication标记创建的每个应用程序映射也可以在大多数地方使用,但它们是运行时构造,因此不能在编译时使用。

  • 另外,如果您具有全局组件,则可能要避免使用映射,而只需告诉Railo组件在哪里,以便您可以直接访问它们。

    创建基于上下文的映射:

    转到Railo Admin(即 http://domain/railo-context/admin/web.cfm),然后在菜单的一半下方找到“Archives&Resources”,其中有“Mappings”。

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

    您还可以使用 cfadmin tag通过 Action “updateMapping”以编程方式创建按上下文的映射。

    (这里的所有内容也适用于每服务器映射,但使用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# />

    注意:应用程序级映射有一些限制,因为它们在运行时存在,但在编译时不存在(例如,它们不能用于自定义标记库,在模板库中对taglib属性进行评估被编译)。

    使用映射引用组件:

    这些中的任何一个都可以使您执行以下操作:
    MyObj = createObject('component','components.NameOfFile').init()

    或者:
    MyObj = new components.NameOfFile()

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

    没有映射的全局组件:

    如果要在没有映射的情况下全局访问组件,请转到“组件”部分(位于菜单中“映射”下方),然后在“其他资源”部分中输入您的绝对组件路径。 (请放心,不要打扰。)

    然后,您可以简单地创建对象,而无需 components.映射:
    MyObj = new NameOfFile()

    关于coldfusion - Railo中的组件映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12073714/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com