【问题标题】:Components mapping in RailoRailo 中的组件映射
【发布时间】:2012-11-30 07:27:18
【问题描述】:

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

我将如何设置映射?

【问题讨论】:

    标签: coldfusion cfc railo


    【解决方案1】:

    总结...

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

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

    • 1234563在编译时使用。

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

    创建每个上下文映射:

    转到 Railo Admin(即http://domain/railo-context/admin/web.cfm),在菜单的一半多一点处,您会找到“存档和资源”,其中是“映射”。

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

    您还可以使用cfadmin tag 和“updateMapping”操作以编程方式创建每个上下文映射。

    (此处的所有内容也适用于每个服务器的映射,除了使用服务器管理员而不是 Web 管理员。每个服务器的映射在 Web Admin 界面中可见但只读。)

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

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

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

    This.Mappings = { '/components' : '/home/user/public_html/components' }
    

    然后,此映射将仅适用于该应用程序,允许您为不同的应用程序将相同的映射点指向不同的位置。

    Railo 还允许在 Application.cfm 中创建每个应用程序的映射,方法是使用 cfapplication 标签 - 像这样:

    <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()
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-11
        • 2020-01-31
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2018-09-04
        相关资源
        最近更新 更多