Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Серверная сторона IIS не обрабатывает ColdFusion

Автор вопроса: MarkОтветов: 3

Как использовать модуль включения на стороне сервера в IIS для включения и обработки файла ColdFusion из файла .htm? В настоящее время я делаю что-то подобное в своем html-файле:

<!--#include virtual="navmenu.cfm"-->

Сюда входит необработанное содержимое файла navmenu. Мне нужно, чтобы он выполнял код ColdFusion и возвращал выходные данные этого процесса, а не включал необработанный код ColdFusion.

Этот же синтаксис правильно работает в Apache.

  • Если расширение файла верхнего уровня - .html, ColdFusion не будет обрабатывать содержимое файла .cfm. kevink 12.02.2010

iis-7ssicoldfusion

Ответы

Ответ 1 · рейтинг 2 · kevink

Если вы не можете сделать так, чтобы верхняя страница выглядела как cfm для внешнего мира, подумали ли вы об использовании URL? Переписать модуль для IIS? Таким образом, вы могли бы просто сделать определенные файлы cfms с некоторыми явными правилами перезаписи htm в cfm, но оставить все остальные необработанными. Кроме того, я думаю, что элегантного ответа может не быть, поскольку вы смешиваете статический и динамический контент.

На ваш комментарий об ajax - лично я не нахожу ничего утомительного в использовании ajax, но опять же jquery вас портит...

 <div id='menuhere'></div>

 $.get('navmenu.cfm', function(data) {$('.menuhere').html(data); });

Выполняет то же самое, что и SSI плюс (при условии, что jQuery кэшируется), вы получаете более быструю загрузку страницы основного контента для загрузки.

Ответ 2 · рейтинг 4 · Adrian J. Moreno

Вы просто пытаетесь избежать расширения CFM в URL-адресе?

Вы не можете использовать SSI для включения файлов CFM в статический файл HTM. Вы можете настроить IIS для отправки файлов HTM на сервер CF для анализа. Это позволит вам использовать CFINCLUDE внутри любого файла HTM.

В качестве альтернативы вы можете использовать ajax из своего HTM-файла и загрузить проанализированное содержимое CFM в DIV.

Ответ 3 · jarofclay

Если вы используете страницу Coldfusion, это:

 <cfinclude template="navmenu.cfm">

Если вы используете другой тип страницы, вам нужно будет поместить этот контент в IFRAME.

<iframe src="navmenu.cfm"></iframe>

Вопрос в том, если у вас есть доступная технология Coldfusion на сервере, почему бы не изменить эту страницу на страницу .cfm и использовать приведенный выше пример?

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы