gpt4 book ai didi

coldfusion - 无需访问 webroot 即可安装 Fusebox

转载 作者:行者123 更新时间:2023-12-04 07:07:33 25 4
gpt4 key购买 nike

以前(和本地)我已将 fusebox5 目录放在 web 根目录中,然后树中任何位置的应用程序都可以访问它。我以前也使用过 Application.cfm 而不是 .cfc。

在这种环境中,我无法访问 webroot 并且 FB 文件实际上不需要那么远,所以我计划将它们与应用程序一起存储。我是否认为如果 Application.cfc 正在使用中 index.cfm 会被忽略(因此没有必要将 cfinclude 值更改为例如 ../fusebox5/)?如果是这样,如何在根或映射中没有 Fusebox 的情况下包含框架?错误是:

Could not find the ColdFusion Component or Interface fusebox5.Application. 

最佳答案

您可以在应用根目录的子文件夹中运行 Fusebox 5+。让它发挥作用可能不是最明显的事情。

不幸的是,您无法为扩展 Application.cfc 创建动态映射,因为您的 Application.cfc 尚未实例化 - 您会遇到鸡与蛋的情况。您无法创建到 Fusebox 的映射,因为您的 Application.cfc 没有启动,您无法启动您的 Application.cfc,因为它找不到它应该扩展的组件。

这是 COLDFUSION 8 中的错误。 ColdFusion 应按以下顺序查找映射:

  • 来自 CF 管理员的映射文件夹
  • 当前目录外的子目录
  • 名为
  • 的 Web 根目录下的子目录

    它在您使用 CreateObject() 时执行此操作,但在您使用 cfcomponent 上的 Extends 属性时则不执行此操作。

    最简单的解决方案是像对任何应用程序一样使用 Application.cfc,然后从 index.cfm 中包含 fusebox。您的文件夹结构如下所示:
    /myapp/fusebox5/
    /myapp/index.cfm
    -- consists of <cfinclude template="fusebox5/fusebox5.cfm" />

    只要您不使用 Application.cfc 的 OnRequest 拦截请求,您的 index.cfm 文件就不会被忽略,或者如果您使用 OnRequest,请确保您包含预期目标(无论如何它几乎总是 index.cfm)。

    如果您不想要求 index.cfm 执行包含,您可以让 Application.cfc 的 OnRequest 方法执行 cfinclude。
    <cffunction name="onRequest">
    <cfinclude template="fusebox5/fusebox5.cfm">
    </cffunction>

    您可能仍然需要 index.cfm 以便您的 Web 服务器不会提供目录列表或 404,但如果文件为空也没关系。

    关于coldfusion - 无需访问 webroot 即可安装 Fusebox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/891961/

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