3

如何使用 IIS 中的服务器端包含模块来包含和处理来自 .htm 文件的 ColdFusion 文件?我目前在我的 html 文件中做这样的事情:

<!--#include virtual="navmenu.cfm"-->

这包括导航菜单文件的原始内容。我需要它来执行 ColdFusion 代码并返回该进程的输出,而不是包含原始ColdFusion 代码。

同样的语法在 Apache 中也能正常工作。

4

3 回答 3

4

您是否只是想避免 URL 中的 CFM 扩展?

您不能使用 SSI 将 CFM 文件包含到静态 HTM 文件中。您可以配置 IIS 将 HTM 文件发送到 CF 服务器进行解析。这将允许您在任何 HTM 文件中使用 CFINCLUDE。

或者,您可以使用 HTM 文件中的 ajax 并将解析的 CFM 内容加载到 DIV 中。

于 2010-02-12T18:58:16.327 回答
2

如果您无法使首页看起来像是外部的 cfm,您是否考虑过使用IIS 的 URL 重写模块?这样,您可以使用一些明确的 htm 使某些文件 cfms 以 cfm 重写规则,但不处理所有其他文件。除此之外,我认为可能没有一个优雅的答案,因为您正在混合静态和动态内容。

关于您对 ajax 的评论-我个人认为使用 ajax 没有任何乏味的地方,但是 jquery 再次破坏了您...

 <div id='menuhere'></div>

 $.get('navmenu.cfm', function(data) {$('.menuhere').html(data); });

完成与 SSI 相同的事情 plus(假设 jQuery 被缓存),您可以更快地加载主内容页面以启动。

于 2010-02-13T14:18:43.507 回答
0

如果您使用的是 Coldfusion 页面,则它是:

 <cfinclude template="navmenu.cfm">

如果您使用的是其他类型的页面,则需要将该内容放入 IFRAME

<iframe src="navmenu.cfm"></iframe>

问题是如果您在服务器上有可用的 Coldfusion 技术,为什么不将该页面更改为 .cfm 页面并使用上面的示例?

于 2010-02-12T16:48:14.460 回答