3

我在 ColdFusion MVC 框架“Mach-II”中构建了一个应用程序,并托管在蓝龙 ColdFusion 服务器上。

它会导致缓存问题。当我添加一个包含一些内容的新页面并加载该页面时,它工作正常。但是当我在同一个文件中进行一些更改并再次点击它时,它不会更新我的更改。它总是向我展示我第一次制作的内容。似乎服务器正在缓存我的页面并且没有考虑进一步的更改。我尝试了很多解决方案,但未能解决问题。

如果您对此有任何解决方案,请告诉我。

4

1 回答 1

4

这对于评论来说有点太长了 - 但它并不是一个答案。

首先,您的问题对于 StackOverflow 来说非常广泛。如果您自己没有查看代码,并且没有任何东西可以向我们展示,则无法保证我们完全可以帮助您。

听起来这个服务可能正在使用查询缓存——看起来像这样。

<cfquery datasource="CRM" name="testQuery" cachedwithin="#CreateTimeSpan(0,0,30,0)#">
-SQL logic-
</cfquery>

基本上它将查询的结果存储在服务器的内存中。它确实可以帮助减轻数据库的压力。他们可能为此缓存功能设置了比您想要的更长的时间限制。

如果您无权访问代码,这是您首先要询问的问题。

编辑:可能完全不同。

https://docs.oracle.com/cd/E13176_01/bluedragon/621/BlueDragon_621_WL_User_Guide.html#_Toc121303111

从来源:

ColdFusion(5 和 MX)将“模板缓存”定义为从源代码渲染后将模板保存在内存中的位置,BlueDragon 具有相同的概念,但将其称为“文件缓存”。在这两个引擎中,一旦从源渲染的模板将保留在缓存中,直到服务器(或 J2EE 或 .NET Web 应用程序)重新启动。

在 Admin Console 中指定的缓存大小指示要保留多少个这些缓存模板。默认为 60,但该数字可能需要根据您的应用程序更改,具体取决于您的应用程序使用多少 CFML 模板。每个请求的模板(CFM 或​​ CFC 文件)使用一个条目。

理解这不是缓存页面的 OUTPUT 而是将模板从源渲染到其内部对象,这一点非常重要。模板的一个缓存实例在应用程序中的所有用户之间共享。

与在 ColdFusion 中一样,一旦文件缓存已满(例如,您将其设置为 60 并且已请求 60 个模板),则对尚未缓存的模板的下一个请求将强制引擎刷新最旧的(最近最少使用的)缓存中的条目以腾出空间。自然地,如果您将此文件缓存大小设置得太小,缓存中可能会发生抖动,因为为文件腾出空间只是为了很快再次请求刷新的文件。

听起来您可能必须重新启动 ColdFusion 应用程序或清除 CFAdmin 中的模板缓存。

于 2016-02-05T11:50:28.250 回答