HTML отображается по-разному в ColdFusion 9

#iis-7 #coldfusion #coldfusion-9

#iis-7 #холодное слияние #coldfusion-9

Вопрос:

У меня действительно странная проблема. Я только что перенес свое приложение ColdFusion с ColdFusion 8 / IIS 6 на ColdFusion 9 / IIS 7.

Ни один из HTML-файлов не был изменен; просто скопирован и вставлен в веб-корень нового сервера. Но страницы отображаются немного по-другому. Это похоже на то, как если бы настройки полей CSS и параметры заполнения для макета не применялись одинаково. Элементы сгруппированы вместе, в то время как до того, как я переместил приложение, был правильный интервал.

Я думал, что сервер ColdFusion не будет вмешиваться в форматирование HTML-страниц, поскольку он просто обрабатывает внутренние запросы, но эти страницы явно выглядят иначе в более старой версии ColdFusion / IIS.

Есть ли что-нибудь, что могло бы заставить это произойти в ColdFusion или IIS? Я просто использую страницы CFM с базовым стилем CSS и т.д. Ничего сумасшедшего.

Комментарии:

1. честно говоря, похоже, что вы, возможно, пропустили копирование файла CSS. Настройте тестовую страницу без CSS, а затем примените CSS и посмотрите, соответствует ли она ожидаемому рендерингу.

2. Вы действительно сравнивали результирующую разметку, чтобы убедиться, что она действительно одинакова? CF не участвует в рендеринге чего-либо, поэтому они «единственный» способ, которым это может отличаться, — это если в браузер отправляется другой контент.

3. Я фактически сузил его до таблицы, в которой находятся все мои элементы. <ширина таблицы=»100%» граница =»0″ заполнение ячейки =»5″> Если я изменю заполнение на 100, это не будет иметь никакого эффекта в Chrome, но БУДЕТ в Firefox. Это произошло только после перемещения моих файлов на Windows 2008 server / IIS7 / Coldfusion9.

4. Опять же … ни один из «Windows 2008 server / IIS7 / Coldfusion9» не имеет никакого отношения к тому, как браузер отображает разметку. Вам нужно проверить, что вы отправляете в браузер, и выяснить, что в этом отличается; затем выяснить, что вызвало разницу, и исправить разницу.

5. @user234215 view source в браузере и сохраните его. Сделайте это для обеих установок. Затем используйте инструмент для сравнения. Сделайте то же самое с файлами ресурсов, такими как CSS и JS, которые способствуют отображению разметки.

Ответ №1:

Я отважусь на ответ. Вот несколько вещей, которые нужно попробовать (или, по крайней мере, подумать).:

Я предполагаю, что ошибок нет и что просто HTML-код дурацкий (но работоспособный).

В вашем CF Admin перейдите в раздел «Настройки»:

Найдите «Включить управление пробелами»: (который описан) Уменьшает размер файла страниц, которые ColdFusion возвращает в браузер, удаляя многие дополнительные пробелы, табуляции и возвраты каретки, которые ColdFusion мог бы сохранить в исходном файле CFML.

Посмотрите, установлен ли флажок, если нет, проверьте его и посмотрите, заметили ли вы какие-либо ожидаемые или неожиданные изменения.

И ищите <cfsetting> теги с enablecfoutputonly установленным значением no/yes или true/false или 0/1 (или отсутствием параметра)

Далее: <cfprocessingdirective>

Найдите страницу, которая делает это:

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

pageEncoding = "page-encoding literal string" <<< это может повлиять на некоторые вещи на уровне символов, которые вы можете рассмотреть.

Подробности кодирования см. В Красочном сообщении Адама здесь.

Предоставляет ColdFusion следующую информацию о том, как обрабатывать текущую страницу:

Указывает, следует ли удалять лишний пробел из содержимого, созданного ColdFusion, в теле тега. Определяет кодировку символов (набор символов) содержимого страницы.

Также проверьте наличие этих <cfcontent> и <cfsilent>

Возможно, это раскроет для вас некоторые тайны (или сделает больше, в зависимости от того, что вы найдете, когда выполните некоторые поиски в своем коде)…

И последнее замечание. Я не уверен, что содержит ваша кодовая база, но если вы столкнетесь с некоторыми вещами, которые вы можете объединить, рассмотрите возможность использования Application.cfc , а затем переместите все эти пробелы, кодирующие здесь. Что-то делает похожие вещи с другими, поэтому вы можете захотеть ограничить избыточность до одной точки отказа, чтобы у вас не было отдельных страниц, копирующих действия, когда они не нужны.

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

🙂

Удачи.

Комментарии:

1. В вопросе говорится о файлах html. У них не будет никаких тегов coldfusion.

2. @DanBracuk Раньше я создавал HTML-файлы в качестве механизма кэширования с помощью Coldfusion, я проверял, существует ли HTML-страница или нет, затем отображал страницу, одновременно создавая файл кэша HTML, чтобы он был проверен при следующем обходе. Но кто знает. возможно, это статические HTML-страницы, которые никогда не меняются. У меня есть один или два из них на моих сайтах. Но я не так интерпретировал ситуацию, поэтому вы можете быть правы.