我编写了简单的重写规则,重写.cfm扩展链接(使用出站规则),并使用等效的入站规则解析为完整的.cfm路径。例如:
此出站链接:
http://mysite/section/page
解决了这条完整路径:
http://mysite/section/page.cfm
当我访问没有文件扩展名的链接时,在任何浏览器中,页面都显示在屏幕上,但浏览器似乎仍在等待页面完成加载(在浏览器选项卡中获取旋转圈,而Firefox说“从mywebsite传输数据......”)
在“等待”加载页面大约5分钟后,浏览器将停止尝试加载并显示“无法显示页面”错误。我使用Firebug的.NET面板来查看最新情况,基本上页面永远不会完成加载(文件大小保持0kb直到浏览器崩溃)。
如果我转到完全限定的路径页面,例如http://mysite/section/page.cfm
然后页面在大约20ms内完全加载,Firebug给出了页面的大小。
任何人都可以建议发生什么事情以及如何解决它?
答案 0 :(得分:5)
好的我已经解决了一些问题,或者实际解决了它。
它是一个ColdFusion问题。如果其他人如果面对这里就是你做的事情:
<cffunction name="onRequestEnd"> <cfheader name="Content-Length" value="#Len(getPageContext().getOut().getString())#" /> <cfset getPageContext().flush()> </cffunction>
所以这里发生的是我们将Content-Length标头设置为正确的大小,因为如果你让它自己做的话,ColdFusion会把它搞乱。结束永无止境的页面加载的方法是在设置Content-Length后放置getPageContext().flush()
,以便浏览器获取所有页面内容。
坦率地说,我使用了一些谷歌搜索和随机黑客。它可能不是解决问题的正确方法(因为在Firebug中它表示存在500错误)但它似乎有效。