【问题标题】:HTML renders differently in ColdFusion 9ColdFusion 9 中的 HTML 呈现方式不同
【发布时间】:2023-03-14 23:05:01
【问题描述】:

我有一个非常奇怪的问题。我刚刚将我的 ColdFusion 应用程序从 ColdFusion 8/IIS 6 移动到 ColdFusion 9/IIS 7。

没有修改任何 HTML 文件;刚刚复制并粘贴到新服务器的 Web 根目录。但页面呈现略有不同。就好像布局的 CSS 边距设置和填充设置没有以相同的方式应用。元素聚集在一起,而在我移动应用程序之前有适当的间距。

我认为 ColdFusion 服务器不会干扰 HTML 页面的任何格式设置,因为它只处理后端请求,但这些页面在旧版本的 ColdFusion/IIS 上看起来明显不同。

在 ColdFusion 或 IIS 中有什么可以使这种情况发生的吗?我只是在使用具有基本 CSS 样式等的 CFM 页面。没什么疯狂的。

【问题讨论】:

  • 说实话,听起来您可能错过了复制 CSS 文件的机会。设置一个没有 CSS 的测试页面,然后应用 CSS 并查看它是否与您期望的输出渲染匹配。
  • 您是否真的比较生成的标记以确保它实际上相同的? CF 不参与渲染任何内容,因此它们“唯一”不同的方式是向浏览器发送不同的内容。
  • 我实际上已经将它缩小到一个包含我所有元素的表格。 如果我更改填充到 100,它在 Chrome 中无效,但在 Firefox 中有效。仅在将我的文件移动到 Windows 2008 服务器/IIS7/Coldfusion9 后才发生这种情况。
  • 再次...“Windows 2008 server/IIS7/Coldfusion9”与浏览器如何呈现标记没有任何关系。你需要检查你发送给浏览器的内容,并找出它有什么不同;然后找出导致差异的原因,并修复差异。
  • @user234215 view source 在浏览器中保存。为两个安装做。然后使用差异工具进行比较。对有助于渲染标记的资产文件(如 CSS 和 JS)执行相同操作。

标签: iis-7 coldfusion coldfusion-9


【解决方案1】:

我会勇敢地回答。以下是一些可以尝试(或至少考虑一下)的事情:

我假设没有错误,只是 HTML 很古怪(但可行)。

在您的 CF 管理员中转到“设置”:

查找“启用空白管理”:(已描述)通过删除 ColdFusion 可能会从 CFML 源中保留的许多额外空格、制表符和回车符来减小 ColdFusion 返回到浏览器的页面的文件大小文件。

如果不检查,看看是否检查,看看你是否注意到任何预期或意外的变化。

并查找enablecfoutputonly 设置为no/yestrue/false0/1<cfsetting> 标签(或缺少参数)

接下来是:<cfprocessingdirective>

查找执行此操作的页面:

<cfprocessingdirective
pageEncoding = "page-encoding literal string"
suppressWhiteSpace = "yes|no">
</cfprocessingdirective

pageEncoding = "page-encoding literal string"

See Adam's colorful post here for encoding details.

向 ColdFusion 提供有关如何处理当前页面的以下信息:

指定是否从标签正文中的 ColdFusion 生成的内容中删除多余的空白字符。 标识页面内容的字符编码(字符集)。

还要检查这些&lt;cfcontent&gt;&lt;cfsilent&gt;

也许这会为你解开一些谜团(或者根据你在代码中运行一些搜索时发现的内容来解开更多谜团)...

最后一点。我不确定您的代码库包含什么,但是如果您遇到一些可以合并的东西,可以考虑使用Application.cfc,然后将所有这些空白编码的东西移到这里。有些东西与其他东西做类似的事情,因此您可能希望将冗余剪裁为单点故障,这样您就不会让各个页面在不需要时复制操作。

哦,最后一件事,请确保关闭缓存,因为其中一些听起来像是有人试图在页面上击败开销。如果您在进行更改时有缓存和渲染页面,您可能看不到您的修复,然后您将把头发拉出来。我们不希望那样。

:)

祝你好运。

【讨论】:

  • 这个问题是关于 html 文件的。他们不会有任何冷融合标签。
  • @DanBracuk 我曾经用 Coldfusion 制作 HTML 文件作为缓存机制,我会检查 HTML 页面是否存在,然后在渲染页面的同时制作 HTML 缓存文件,以便在下一次检查时进行检查。但谁知道呢。也许这些是永远不会改变的静态 HTML 页面。我的网站上有其中的一两个。但这不是我解释事情的方式,所以你可能是对的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-24
  • 2013-03-31
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 2015-12-28
  • 2011-04-01
相关资源
最近更新 更多