#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-страницы, которые никогда не меняются. У меня есть один или два из них на моих сайтах. Но я не так интерпретировал ситуацию, поэтому вы можете быть правы.