Вопрос по whitespace, coldfusion – Удалить пробелы в выходном HTML-коде

2

Рассмотрим файл test.cfm со следующим содержимым:

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

При запуске в браузере исходный код вывода этого файла будет выглядеть так:

<html>
    <body>



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

Есть ли способ это исправить?

Ваш Ответ

3   ответа
4

есть возможность подавить пробелы.

Он находится в разделе «Настройки сервера». - & GT; & APOS; Настройки & APOS; он называется «Включить управление пробельными пространствами».

6

Is there any way to fix this?

Там нет ничего, чтобыfix - HTML отлично работает и функционален.

Если ваша проблема связана с размером запроса, используйте кодировку gzip.

Если ваша проблема заключается в чтении исходного кода для отладки / etc, используйте инструменты разработчика, такие какподжигатель/так далее.


Тем не менее, общие вещи, которые вы должны сделать, чтобы улучшить удобство сопровождения (которое в то же время также уменьшает объем пробелов):

1) Переместите все, что не отображает логику, из ваших представлений.

2) Преобразуйте логику отображения в функции и пользовательские теги, в зависимости от ситуации, что облегчает предотвращение / контроль вывода.


Чтобы предотвратить вывод нежелательного содержимого, вы можете:

Wrap the entire section in cfsilent, to ensure nothing gets output.

Enable enablecfoutputonly attribute of cfsetting then only use cfoutput around things you want to be output.

Always set output=false on component and function tags.

When you want to selectively output some text, wrap non-tag non-output segments in CFML comments <!---...---> (e.g. useful for preventing newline output in custom tags)

(Я никогда не беспокоюсь о cfprocessingdirective, все, что упомянуто выше, решает проблемы лучше.)

1) Конечно, вся «бизнес-логика» входит в функции CFC, но мне все равно нужно как-то их вызывать в CFM, не так ли? // Я рассмотрю кодировку gzip, которая, я думаю, будет наиболее эффективным способом сделать это ... Eleeist
Вы вводите в заблуждение термины. Бизнес логика идет туда, куда нужно идти. Логика отображения - это когда вам нужно контролировать то, как отображаются ваши представления - они могут переходить в CFC / функции, но иногда имеют больший смысл в пользовательских тегах / что угодно - в зависимости от того, что они делают.
Я думаю, что CF9 или CF10 имеют настройки администратора для gzip, но ничего не нашли в быстром поиске. (Я знаюRailo есть такая настройка.)
Спасибо за много полезной информации. Я все еще должен сделать некоторое исследование и посмотреть, что подходит мне лучше всего. Eleeist
3

Пытаться<cfprocessingdirective suppressWhiteSpace="true">

Ссылка:http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-76de.html

Также изучите & lt; cfsilent & gt; и & lt; cfsetting enablecfoutputonly = "true" & gt; Если вам нужен более избирательный контроль над выводом, но ответ tptcat обращается к пробелу в целом.
Ознакомьтесь с замечательным руководством Ben Nadel Application.cfc здесь:bennadel.com/blog/…  Если вы хотите, чтобы обернутьcfprocessingdirective вокруг каждого звонка вы должны быть в OnRequest. Кроме того, как сказал @BenKoshy, вы можете лучше контролировать это с помощью двух упомянутых им тегов.
Работает, но ... Есть ли способ сделать его глобальным и не включать его в каждый файл? Может быть, что-то в Application.cfc? Eleeist

Похожие вопросы