Создает ли ColdFusion автоматически основные теги HTML? - PullRequest
2 голосов
/ 07 июня 2009

ColdFusion автоматически генерирует основные теги HTML, такие как:

   <HTML> <head></head> <body></body> </HTML>

Или вы должны включить это в свой исходный код, такой как ASP или PHP?

Ответы [ 8 ]

6 голосов
/ 08 июня 2009

Лично я не хотел бы, чтобы ColdFusion включал эти теги, так как я не всегда выводил HTML.

Кроме того, в отличие от PHP, здесь нет тега <?coldfusion> или чего-либо подобного, который вы используете для объявления того, что CF должен обрабатывать ваш код. Все теги ColdFusion имеют префикс «cf» и могут перемежаться обычным HTML-кодом. Помните, что для визуализации вывода на страницу вы должны использовать тег '<cfoutput>'. то есть.

<cfset variables.firstName = 'My Name' />
<html>
<head>
  <title>ColdFusion Sample</title>
</head>
<body>
 Hello <cfoutput>#variables.firstName#</cfoutput>
</body>
</html>
2 голосов
/ 08 июня 2009

Самый простой способ объяснить это:

Код CFML извлекает, рассчитывает и отображает информацию в документе HTML.

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

<HTML> <head></head><body>

и страница нижнего колонтитула будет включать в себя ..

</body> </HTML>

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

Я считаю, что CFML - это самый простой синтаксис, чтобы оставаться читаемым внутри HTML, и не составляет особого труда оставить его таким.

Надеюсь, это поможет.

1 голос
/ 12 июня 2009

Если ... а это большой IF ... если вы не возражаете против каждого запроса, имеющего открывающий и закрывающий теги HTML, вы можете добавить их в свой Application.cfm / OnRequestEnd.cfm или Application.cfc.

Application.cfm:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
    <title>Page title here</title>
</head>
<body>

OnRequestEnd.cfm:

</body>
</html>

Или Application.cfc - OnRequest ():

<cffunction name="OnRequest" output="true" returntype="void">

    <cfargument name="targetPage" type="string" required="true">

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html>
    <head>
        <title>Page title here</title>
    </head>
    <body>
        <cfinclude template="#ARGUMENTS.targetPage#">
    </body>
    </html>

</cffunction>

Нет, это не лучший способ, потому что он очень ограничен, но это другой способ! : OD

1 голос
/ 09 июня 2009

Нет, Coldfusion не будет включать в себя ничего, о чем вы не говорите.

Для обычной страницы, для которой требуется тег HTML / BODY (т.е. не фрагмент кода для вставки), вы можете использовать любое количество пользовательских функций / тегов для вывода тегов HTML / BODY, но в целом самый простой из них наиболее вероятен просто введите их.

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

Обратите внимание, что CF предоставляет некоторые виджеты, которые будут генерировать НЕКОТОРЫЕ HTML. Так, например, CFTABLE приведет к появлению тега TABLE на некотором уровне. Но это в первую очередь способ упростить создание таблиц, тогда как HTML / BODY не может быть намного проще.

1 голос
/ 09 июня 2009

В качестве альтернативы, перейдите к базовой настройке шаблонов и используйте (meta.cfm,) header.cfm, sidebar.cfm, footer.cfm и используйте тег <cfinclude template=""> на каждой странице. Более того, используйте инфраструктуру для управления всем этим через контроллер, что упростит вывод содержимого в различных форматах.

1 голос
/ 08 июня 2009

Вы можете создать собственный тег, чтобы сделать это для вас.

Например, на каждой странице, где вы хотели использовать свой стандартный шаблон, вы можете использовать что-то вроде:

<cf_page
    title  = "MyTitle"
    styles = "base.css,form.css,theme.css"
    >

    Main Page Content

</cf_page>


И затем, чтобы это сработало, создайте page.cfm, который выглядит примерно так:

<cfswitch expression="#ThisTag.ExecutionMode#">

    <cfcase value="START">

        <cfcontent reset/><cfoutput><!DOCTYPE html>
<html>
    <head>
        <title>#Attributes.Title#</title>

        <cfif StructKeyExists(Attributes,'Styles')>
        <cfloop index="CurStyle" list="#Attributes.Styles#">
            <link rel="stylesheet" href="#CurStyle#"/>
        </cfloop>
        </cfif>

        <cfif StructKeyExists(Attributes,'Scripts')>
            <cfloop index="CurScript" list="#Attributes.Scripts#">
                <script type="text/javascript" src="#CurScript#"></script>
            </cfloop>
        </cfif>

        <cfif StructKeyExists(Attributes,'HeadContent')>#Attributes.HeadContent#</cfif>
    </head>
    <body>
</cfoutput>

    </cfcase>

    <cfcase value="END">
        <cfoutput>
        </body>
</html></cfoutput>
    </cfcase>

</cfswitch>
1 голос
/ 07 июня 2009

Включите его в свой источник. Даже если он добавляет их автоматически (чего не происходит), вам почти всегда требуется больше контроля (т. Е. Настройка ваших метатегов).

Кстати, вам даже не нужны эти теги. Следующий фрагмент должен корректно отображаться в большинстве браузеров.

<div> HI </div>
0 голосов
/ 08 июня 2009

Чтобы ответить на ваш вопрос, да, вам нужно включить разметку на странице.

Как отмечали другие авторы, это может быть что-то кроме HTML, которое вы хотели бы вывести, например, документ PDF или JSON. CF делает такие вещи очень простыми, что является частью их привлекательности.

...