【问题标题】:ColdFusion: Storing tags inside database outputs as stringColdFusion:将标签存储在数据库输出中作为字符串
【发布时间】:2012-12-08 23:37:25
【问题描述】:

我正在创建一个 CMS 系统,该系统具有仅使用一页的重写规则。然后从该页面中,我从数据库中提取内容以根据其 url 填充每个页面。这一切都很好,但是,在某些页面上,我还想使用存储在数据库表中的 ColdFusion 标签,即<cfif> 等。

当页面呈现时,它将标签输出为 html,而不是 ColdFusion 运行标签。我找到了一种通过在内容周围使用Evaluate() 来使其工作的方法。但是,阅读此内容显然存在大量性能问题。

因此,我想知道我可以使用哪些其他选项来完成这项工作。

【问题讨论】:

  • 这个问题之前有人问过——我手边没有网址,也没有在“相关”中看到它,但肯定有(至少一个)关于这个主题的问题。跨度>
  • 另外 - “我正在创建一个 cms 系统” - 不要。节省大量时间并使用Mura(或任何现有的 CMS),它已经解决了您将遇到的 95% 以上的问题。
  • 感谢 cmets 彼得,我昨天确实尝试寻找这个并想出了一些答案,不幸的是没有一个对我有用。当我说 CMS 系统时,我指的是从数据库中提取内容的基本单页模板。仅此而已。任何其他 cmets 将不胜感激。

标签: database coldfusion evaluate


【解决方案1】:

您应该能够将数据写入文件,然后使用<cfinclude> 将其包含在您的页面中

未经测试,但这样的东西应该可以工作。

<cfset NewFileName = CreateUUID()&'.cfm'>
<cffile action="write" file="YourPath\#NewFileName#" output="#DatabaseInfo#">
<cfinclude template="#NewFileName#">
<cffile action="delete" file="YourPath\#NewFileName#">

【讨论】:

  • 谢谢马特,我昨天走这条路,因为很多人推荐它,但是每次我尝试它仍然输出为 html 而不是 Coldfusion。
  • 你能把你正在使用的代码和你收到的输出一起发布吗?
  • 不需要马特,只是在我的原始代码中发现了你推荐的缺陷并让它工作。之前,我将模板包含在 cfoutput 标记中,并且只将代码放入数据库中,即 #now()#。我现在已经对其进行了更改,以便 cfoutput 标记也在数据库中并且它现在可以工作了。感谢您对此的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多