3

考虑包含以下内容的 test.cfm 文件:

<html>
    <body>
        <cfif foo EQ bar>
            <cfset test = "something" />
        </cfif>
        <p>Hello!</p>
    </body>
</html>

在浏览器中运行时,该文件的输出源代码将如下所示:

<html>
    <body>



        <p>Hello!</p>
    </body>
</html>

有没有什么办法解决这一问题?

4

3 回答 3

7

有没有什么办法解决这一问题?

没有什么可修复的 - HTML 完全有效且功能正常。

如果您的问题是请求的大小,请使用 gzip 编码。

如果您的问题是阅读调试/etc 的源代码,请使用开发人员工具,例如Firebug /etc。


但是,为了提高可维护性(同时也减少空白输出),您应该做的一般事情是:

1) 将任何不显示逻辑的内容移出您的视图。

2) 将显示逻辑适当地转换为函数和自定义标签,这两者都更容易防​​止/控制输出。


为防止输出不需要的内容,您可以:

  • 将整个部分包裹在cfsilent中,以确保没有任何输出。

  • 启用cfsettingenablecfoutputonly的属性,然后仅在您想要输出的内容周围使用 cfoutput。

  • 始终设置output=false在组件和功能标签上。

  • 当您想有选择地输出一些文本时,将非标记非输出段包装在 CFML 注释<!---中...... --->(例如,对于防止自定义标记中的换行符输出很有用)

(我从不理会 cfprocessingdirective,上面提到的一切都能更好地解决问题。)

于 2012-08-18T20:39:42.997 回答
5

如果您有权访问 CF 管理员,则可以选择禁止空格。

It is under 'Server Settings' --> 'Settings' its called 'Enable Whitespace Management'.

于 2012-08-18T20:46:49.500 回答
4

尝试<cfprocessingdirective suppressWhiteSpace="true">

参考:http ://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-76de.html

于 2012-08-18T20:10:54.273 回答