IIS服务器端包含不处理ColdFusion

时间:2010-02-12 16:35:46

标签: iis-7 coldfusion ssi

如何在IIS中使用Server Side Includes模块来包含和处理.htm文件中的ColdFusion文件?我目前在我的html文件中做了类似的事情:

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

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

这种语法在Apache中正常工作。

3 个答案:

答案 0 :(得分:4)

您是否只是想避免在网址中使用CFM扩展程序?

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

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

答案 1 :(得分:2)

如果您不能让首页看起来像是外面的cfm,您是否考虑过使用URL Rewrite Module for IIS?这样你就可以使某些文件cfms使用一些显式的htm来cfm重写规则但是让所有其他文件都不加工。除此之外,我认为可能没有一个优雅的答案,因为你混合了静态和动态内容。

关于你对ajax的评论 - 我个人认为使用ajax没有任何繁琐但是jquery再次破坏了你......

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

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

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

答案 2 :(得分:0)

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

 <cfinclude template="navmenu.cfm">

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

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

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