Каков был бы корректный способ остановить пробел что выводы ColdFusion?
Я знаю, что существует cfcontent
и cfsetting enableCFoutputOnly
. Что корректный путь состоит в том, чтобы сделать это?
Что касается тегов, cfsilent
В администраторе есть настройка на 'Включить управление пробелами'
Вы можете изменить вывод ColdFusion, получив доступ к буферу вывода ColdFusion. Джеймс Браун недавно продемонстрировал это на собрании нашей группы пользователей ( Группа пользователей веб-разработчиков Центральной Флориды ).
<cfscript>
out = getPageContext().getOut().getString();
newOutput = REreplace(out, 'regex', '', 'all');
</cfscript>
Отличное место для этого - Application.cfc onRequestEnd (). Ваш результат может быть одной строкой HTML, которая затем отправляется в браузер. Подключите свой веб-сервер к GZip, и вы значительно сократите пропускную способность.
Если ни
, ни
не могут вас удовлетворить, тогда вы вероятно, чрезмерно прорабатывают эту проблему.
Когда вы задаете вопрос исключительно из эстетических соображений, я рекомендую: игнорировать пробелы, это не причинит никакого вреда.
Я обнаружил, что даже используя все возможные способ устранения пробелов, в вашем коде все еще могут быть нежелательные пробелы или разрывы строк. Если вы все еще сталкиваетесь с этим, вам, возможно, придется пожертвовать хорошо отформатированным кодом для получения желаемого результата.
например, вместо:
<cfprocessingdirective supressWhiteSpace = "true">
<cfquery ...>
...
...
...
</cfquery>
<cfoutput>
Welcome to the site #query.userName#
</cfoutput>
</cfprocessingdirective>
Вам может потребоваться код:
<cfprocessingdirective supressWhiteSpace = "true"><cfquery ...>
...
...
...
</cfquery><cfoutput>Welcome to the site #query.UserName#</cfoutput></cfprocessingdirective>
Это не CF, добавляющий пробелы, а вы добавляете пробелы при форматировании CF.
HTH
В качестве альтернативы вы можете убедиться, что вся ваша страница хранится в переменной, и вся эта обработка выполняется в тегах cfsilent. например
<cfsilent>
<!-- some coldfusion -->
<cfsavecontent variable="pageContent">
<html>
<!-- some content -->
</html>
</cfsavecontent>
<!-- reformat pageContent if required -->
</cfsilent><cfoutput>#pageContent#</cfoutput>
Наконец, вы можете выполнить любую дополнительную обработку после того, как вы сгенерировали содержимое страницы, но перед его выводом, например регулярное выражение для удаления лишних пробелов или корректировки кода.
Вот совет, если вы используете CFC.
Если вы не ожидаете, что ваш метод будет генерировать какие-либо выходные данные, используйте output = "false"
в
и
(не требуется, только если вы используете стиль скрипта CF9). Это устранит множество нежелательных пробелов.