Coldfusion 10 AJAX заменяет содержимое в cfdiv

У меня есть href, который выдает ошибку при попытке заменить содержимое своего родительского cfdiv.

В попытке сделать это коротким, ссылка выглядит примерно так:

<cfdiv id="managerDiv">
    <a href="javascript:ColdFusion.navigate('theURL?theVariables','managerDiv');" >add a new thing</a>
</cfdiv>

Ошибка, которую я получаю, представляет собой диалоговое окно, в котором указано следующее:

Ошибка получения разметки для element managerDiv : /manager/CFIDE/administrator/templates/errors.jsp [Включите отладку, добавив «cfdebug» к параметрам URL, чтобы увидеть больше информации]


Несколько замечаний:

  • В моей среде разработки Coldfusion 10 у меня нет проблем. Эта ошибка возникает только на моем хостинг-сервере.
  • Структура каталогов моего хостинга и среды разработки ТОЧНО одинакова.
  • У меня НЕТ указателя или сопоставления с «errors.jsp» в моем исходном коде или настройках Coldfusion.
  • менеджер — это подкаталог на корневом уровне
  • «theURL» — это любой файл coldfusion, я пробовал с простым файлом Blank.cfm, и он все равно выдает ту же ошибку.

Мысли

Очевидно, что Coldfusion ищет несуществующий файл для замены содержимого cfdiv. Однако я действительно понятия не имею, почему он ищет что-то, кроме содержимого «URL», и почему он ищет его в каталоге, указанном в ошибке (manager/CFIDE/...)


Я сделал еще несколько тестов. Похоже, что параметру URL coldfusion.navigate не нравится относительный путь (опять же, он отлично работает в моей среде разработки, но не в рабочей среде).

Например, это работает:
<a href='javascript.Coldfusion.navigate('test.cfm');'>

но это НЕ:
<a href='javascript.Coldfusion.navigate('folder/test.cfm');'>

мысли?


person Sean    schedule 10.07.2013    source источник
comment
Я бы предположил, что папка CFIDE заблокирована, и вы не можете получить к ней доступ через своего провайдера.   -  person Matt Busche    schedule 10.07.2013
comment
1. Прекратите использовать ‹cfdiv› или любой из компонентов пользовательского интерфейса в ColdFusion. 2. Есть ли у вас доступ к лог-файлам? Если это так, проверьте их, возможно, в администраторе CF для обработчика ошибок на сайте был установлен error.jsp. Просмотр файлов журнала может пролить свет на то, что это за ошибка. 3. Попробуйте нажать URL-адрес в вызове navigation() прямо в браузере и посмотрите, что получится в результате.   -  person Scott Stroz    schedule 10.07.2013
comment
Я только что просмотрел файл errors.jsp в своей локальной установке CF 10, и он выглядит как страница «ошибка» по умолчанию, которую вы получаете при установке Cf 10 с «безопасным» профилем. Похоже, у вас где-то в коде есть ошибка, из-за которой CF пытается загрузить этот файл.   -  person Scott Stroz    schedule 10.07.2013
comment
Скотт: Вы предлагаете мне не использовать ‹cfdiv› для окончательного решения? Или просто для пробы? Кроме того, если в моем коде есть ошибка, я не могу ее найти. Как я уже говорил выше, среда разработки работает безупречно при той же структуре каталогов и исходном коде.   -  person Sean    schedule 10.07.2013
comment
@ Скотт-Строз (любой), я провел еще несколько тестов. Похоже, что параметру URL coldfusion.navigate не нравится относительный путь (опять же, он отлично работает в моей среде разработки, но не в рабочей среде). Например, это работает: <a href='javascript.Coldfusion.navigate('test.cfm');'>, но это НЕ работает: <a href='javascript.Coldfusion.navigate('folder/test.cfm');'> мысли?   -  person Sean    schedule 11.07.2013
comment
Да... перестаньте использовать ‹cfdiv› и ColdFusion.navigate(). :D А если серьезно, чем локально отличается от сервера? Веб-сервер (IIS, Apache)? Является ли путь URL к приложению таким же? Все, что вы можете придумать, поможет.   -  person Scott Stroz    schedule 11.07.2013
comment
@Sean Я выступаю за то, чтобы НЕ использовать НИЧЕГО из пользовательского интерфейса в ColdFusion. Обычно это не оптимально, и разработчики часто быстро сталкиваются с ограничениями реализации. Вам лучше использовать библиотеку JS, например jQuery, для обработки подобных вещей типа AJAXy.   -  person Scott Stroz    schedule 11.07.2013
comment
@ Скотт, понял ... Я использую комбинацию jquery и пользовательского интерфейса CF. Однако я думаю, что они, вероятно, не нравятся друг другу, и нагрузка на клиент раздувается из-за необходимых для каждого вспомогательных файлов. Спасибо за внимание.   -  person Sean    schedule 11.07.2013


Ответы (1)


Все:

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

Другими словами, вот моя ссылка (я опустила имена, потому что изначально считала их неуместными, но вот настоящая ссылка):

<a href='javascript.Coldfusion.navigate('manager/test.cfm');'>

Мне переслала эту страницу служба поддержки, которая, кажется, подтверждает этот момент:

http://www.giancarlogomez.com/2012/06/directory-of-manager-in-webroot-not.html

Итог: не называйте каталог в корневой папке «менеджером». Coldfusion/TomCat резервирует это имя (по крайней мере, на корневом уровне).

Я не уверен, почему они это сделали (учитывая случайное использование слова «менеджер» в качестве роли администратора и, следовательно, общую тенденцию иметь каталог для этой роли), ну да ладно :)

person Sean    schedule 12.07.2013