Почему CFHTMLHEAD не работает в ColdFusion 11?

На данный момент я протестировал несколько страниц, и кажется, что когда бы я ни пытался использовать <CFHTMLHEAD> для добавления CSS или JavaScript на страницу CFM в ColdFusion 11, он не добавит их (отлично работает в CF8).

Я читал на SO об увеличении «Максимального размера буфера вывода» в разделе «Администратор»> «Настройки сервера»> «Настройки» по сравнению со значением по умолчанию 1024 КБ, но каждое значение, которое я пробовал (2048 КБ, 4096 КБ и даже максимально допустимый 999999 КБ), я получаю тот же результат - содержимое не включается в тег <HEAD> при загрузке страницы.

Кто-нибудь еще сталкивался с этим и нашел решение?

Пример кода:

htmlhead.cfm:

<cfif NOT ThisTag.HasEndTag>
    <cfthrow message="Missing end tag for custom tag htmlhead." type="HeadWrap" />
</cfif>

<cfif ThisTag.ExecutionMode is "End">
    <cfhtmlhead text="#ThisTag.GeneratedContent#" />
    <cfset ThisTag.GeneratedContent = "" />
</cfif>

index.cfm:

<cfsilent>
    <!--- 
        Data Retrieval, validation, etc. here
    --->

    <cf_htmlhead>
        <style type="text/css">
            tr.status-RETIRED td {
                color: #800000;
            }

            tr.status-PENDING td {
                color: #008000;
            }
        </style>
        <script type="text/javascript">
        $(function(){
            $(".options-menu").mouseleave(function(e){
                $(this).hide("fast");
            })

            $(".options-menu-link").mouseover(function(){
                $(".options-menu").hide("fast");

                $(".options-menu[data-sku='" + $(this).data("sku") + "']").show("fast");
            }).click(function(e){
                e.preventDefault();
            });
        });
        </script>
    </cf_htmlhead>
</cfsilent>

<!--- 
    Custom Tag layout.cfm contains the DOCTYPE declaration, html, head (loads jquery, jquery-ui, css, etc.), and body tags with a header and footer for each page.
--->
<cf_layout>
    <!--- Page Content Here (a form, a table, some divs, etc.) --->
</cf_layout>

person Eric Belair    schedule 30.12.2014    source источник
comment
Нет ошибки, просто нет результатов? Репро случае?   -  person Adam Cameron    schedule 07.01.2015
comment
@AdamCameron, нет, ошибки нет. Страница загружается, но когда я просматриваю HEAD в исходном коде, теги сценария и стиля, которые я закодировал в теге CFHTMLHEAD, отсутствуют (что приводит к неправильному отображению частей страницы и/или их неправильной работе).   -  person Eric Belair    schedule 08.01.2015
comment
Хорошо, и вторая (и основная) часть моего вопроса: случай репродукции? IE: дайте нам код, демонстрирующий то, что вы видите. sscce.org   -  person Adam Cameron    schedule 08.01.2015
comment
@AdamCameron посмотрите пример кода, который я добавил.   -  person Eric Belair    schedule 09.01.2015
comment
@EricBelair, ты пишешь свой собственный <cfhtmlhead> с <cf_htmlhead>? Зачем?   -  person Henry    schedule 09.01.2015
comment
@ Генри, потому что на странице легче увидеть фактический код, чем запихивать его весь в текстовый атрибут <cfhtmlhead> или, что еще хуже, использовать <cfsavecontent>. Это более простая установка, которую я могу легко использовать повторно. Но дело не в этом.   -  person Eric Belair    schedule 09.01.2015


Ответы (1)


Я обнаружил, что в CF11 все, что добавляется с помощью вызова cfhtmlhead, предшествующего вызову cfcontent reset="true", не добавляется в результирующий документ. Содержит ли тег cf_layout, который вы вызываете после вашего cf_htmlhead, сброс содержимого?

Например,

<!--- This will not be added under CF11. --->
<cfhtmlhead text="<!-- I'm some content that will only be included in CF10 or lower. -->">

<cfcontent reset="true">

<!--- This will be added under CF11 and lower. --->
<cfhtmlhead text="<!-- I'm some content that will be added in CF11 and lower. -->">

... the rest of your view code ...

<!--- This is a sample of the content you will get under CF11 --->
<!doctype html>
<html>
<head>
   <meta charset="UTF-8" />
   <title>Head Testing</title>
      <!-- I'm some content that will be added in CF11 and lower. -->
   </head>
   <body>
      <h1>Page content</h1>
   </body>
</html>
person Dave Jones    schedule 23.01.2015