问题标签 [application.cfc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
515 浏览

coldfusion - Application.cfc 内置变量

在 ColdFusion 版本 9 中,我在 Index.cfm 中有以下内容:

但我唯一得到的是一个带有应用程序名称的结构 - 没有其他变量,如 rootPath、mappings 或 customTagPath。

这是我在 Application.cfc 中的内容:

0 投票
4 回答
461 浏览

coldfusion - 将通用 udf 分配给 application.cfc 的正确方法是什么?

我只是想在 application.cfc 中定义一个函数并将它的应用程序范围内的所有请求公开。最好“分配”只会在应用程序启动时发生。

是按照以下方式做某事的首选方法:

还是有更好的东西?

0 投票
1 回答
216 浏览

coldfusion - application.cfc 页面出现 cfml 错误

我的 cfml 网站有一些问题。

我在 application.cfc 文件中使用了以下代码来连接 dsn。

但是,当我把它放在我的服务器中时,我得到了错误。我什至无法浏览单个 test.cfm 页面。

该代码是否有任何错误,任何语法错误或类似的东西,dsn是否有问题

请任何人帮助我

0 投票
3 回答
4243 浏览

string - ColdFusion 静态键/值列表?

我有一个数据库表,它是一个定义术语的字典——键、值。我想从数据库中加载应用程序范围内的字典,并将其保留在那里以提高性能(它不会改变)。

我认为这可能是某种“结构”,但我对 ColdFusion非常陌生(帮助另一个团队)。

然后,我想对一些输出到浏览器的字符串做一些简单的字符串替换,循环遍历定义的术语并用一些 HTML 替换这些术语来定义术语(悬停或链接,稍后会制定详细信息, 不重要)。

这是当前在 application.cfc 文件中的代码:

调用页面尝试按如下方式使用它:

当我调用该函数时,我返回:“元素 DEFINEDTERMS 在应用程序中未定义”。

编辑:强制调用 OnApplicationStart() 有效,显然 Cold Fusion 的 application.cfc 不像 ASP.NET 的 web.config,更改它不会重置应用程序。

0 投票
2 回答
785 浏览

api - 在 ColdFusion 中使用缓存来限制对 API 的调用

嗨,我正在使用 ColdFusion 调用 last.fm api,使用来自此处的 cfc 包。

我担心会超过请求限制,即每个原始 IP 地址每秒 5 个请求,平均超过 5 分钟。

cfc 包有一个中心组件,它调用所有其他组件,这些组件被分成“艺术家”、“轨道”等部分……这个中心组件“lastFmApi.cfc”。在我的应用程序中启动,并在应用程序的生命周期内持续存在

现在,如果我想通过处理程序/控制器调用 api,例如我的艺术家处理程序......我可以这样做

我对缓存有点困惑,但是我在这个处理程序中缓存了对 api 的每个调用 5 分钟,但这有什么不同吗,因为每次有人点击一个新的艺术家页面时,这仍然算作对 api 的新点击?

想知道如何最好地解决这个问题

谢谢

0 投票
3 回答
3061 浏览

coldfusion - 可以在 application.cfc 中创建一个无范围的全局吗?

我正在迁移使用 application.cfm 的旧应用程序以使用 application.cfc。CFM 设置了一些全局变量,例如

我尝试将那行代码放在 onApplicationStart、onRequestStart 等中,但尝试在测试页中打印该值会导致错误。在应用程序范围(例如application.dsn)中设置一个值当然可以正常工作,但是我的截止日期很紧,无法通过在站点范围内对每个全局进行搜索和替换来摇摆不定。

我知道将这些放在作用域中是正确的做法,但是目前,有没有办法切换到使用 Application.CFC 但仍然创建无作用域的全局变量?

0 投票
3 回答
325 浏览

coldfusion - Application.CFC 有问题

只是在 ColdFusion 中写出我自己的博客,突然之间,我在我的开发机器上打开了 eclipse,在 Chrome 中检查了该站点,但它没有加载。所以我尝试将 Application.cfc 移动到另一个文件夹,瞧,页面可以正常工作。

确切的错误信息是:

系统试图使用未定义的值,这通常表示您的代码或某些系统代码中的编程错误。空指针是未定义值的另一个名称。

Application.cfc 的内容如下:

任何想法的人?

非常感谢,

杰克

0 投票
1 回答
198 浏览

coldfusion - 测试站点在主站点的子目录中引用了错误的 Application.cfc

我有一个设置了多层目录结构的 CF9 项目。在根级别,我拥有带有 Application.cfc 的实时生产站点。它包含许多绑定到“debugMode”标志的变量——所以在生产站点的情况下,这个标志设置为假。

在生产站点的子目录中,我有一个文件夹,其中包含该站点的测试版本。这有自己的 Application.cfc,其中 debugMode 设置为 true。除了我们正在测试的这个标志和更改之外,它与生产 Application.cfc 相同。

这个没有任何问题,直到我们添加了重置 Application.cfc 的逻辑,以便在不等待超时(我们设置为 30 分钟)的情况下查看我们的更改。

为了实现这一点,我们将此块添加到 Application.cfc 中的“OnRequestStart”函数中(它存在于生产和测试版本中):

这最初似乎工作正常。如果我们在测试版本的任何页面的 url 中添加“?reset”,对 Application.cfc 所做的更改会立即反映,但我们很快发现了一个令人讨厌的副作用:在测试版本上调用 reset ALSO 会更改我们的生产站点以使用Application.cfc 的测试版本,从而使一切变得强大。

在生产站点上运行“?reset”逻辑解决了这个问题,但随后导致所有测试页面使用生产 Application.cfc 而不是测试版本。等待 Application.cfcs 超时并自动刷新没有任何区别,所以现在我们的测试环境搞砸了。

任何对正在发生的事情或做什么的见解将不胜感激,因为我们相当难过。这仅仅是一个糟糕的架构吗?我们继承了它,现在已经习惯了这种结构,所以最好快速修复,但我愿意接受建议。

谢谢。

0 投票
1 回答
214 浏览

debugging - Coldfusion错误处理问题

在我的 Application.cfc 中,我有一个 onError 函数,它可以很好地处理所有错误,除非被调用的页面缺少结束标记。引发的错误是 InvalidEndTagNestingConfigurationException。我也想在应用程序中捕获这些类型的错误。

为什么 onError 不能捕获缺少的结束标记错误?有没有办法捕捉这些错误?

谢谢!

0 投票
5 回答
1257 浏览

coldfusion - CFC 扩展同级文件夹

我已经看到了在父文件夹中扩展 cfcs 的各种解决方案,可以访问父文件或 CF 管理,但我还没有看到在“共享”/兄弟文件夹中扩展 cfc 而不访问父文件夹的可行解决方案。

此解决方案需要访问父文件夹吗?(不确定这些映射是什么,但无论如何我都无法访问 Application.cfc)

此解决方案需要能够创建一个对我不起作用的 application.cfc(在 myApp 中创建一个没有任何作用,因为我所在的环境包括 myApp 中的索引页面并从那里构建...客户端永远不会直接调用它来识别Application.cfc)

例如:

  • wwwroot/some/path/myApp/Shared/Base.cfc
  • wwwroot/some/path/myApp/Function/Function.cfc

我希望能够通过 super 和扩展从 Function.cfc 调用 Base.cfc 中的功能(其中包含应用程序中使用的常用方法)。

我可以访问 myApp 中的所有文件,但不能访问“wwwroot”、“some”或“path”。

为了在 Function.cfc 中扩展 Base.cfc,我必须扩展“some.path.myApp.Shared.Base”的完整路径,如果有人重命名 myApp 文件夹,这将导致问题,因为我必须手动编辑每个函数。扩展该 Base.cfc 的 cfc

我想要做的是创建一个特定于应用程序的“屏障”,因此如果应用程序文件夹名称发生更改,它不会造成大规模破坏,这需要我编辑所有使用 Base.cfc 功能的 CFC 文件。

由于我不能使用 Base 的相对路径(“..Shared.Base”),我想知道是否有一种方法可以在 myApp 文件夹中创建一个 CFC,我可以从中扩展并减轻重命名头痛发生或给它一个通用名称,如“myApp”并从那里扩展。(myApp.Shared.Base)

我无权访问 Application.cfm,也无权访问 Coldfusion 管理。