Кто-нибудь использует платформу ColdFusion, которая имеет определенные требования к пути без сопоставления или размещения ресурсов в корне сервера? - PullRequest
2 голосов
/ 09 ноября 2009

Позвольте мне сначала сказать, что я знаю этот часто задаваемый вопрос для Mach-II , в котором обсуждается использование специфичных для приложения отображений в качестве третьего варианта, когда:

  1. найти структуру в корне сервера невозможно и

  2. невозможно создать общесерверное отображение в каталог инфраструктуры Mach-II

Использование отображений для конкретных приложений также будет работать для других сред ColdFusion с аналогичными требованиями (ColdSpring). Однако здесь возникает моя проблема: все мои (я бы сказал «их») рабочие серверы работают под управлением ColdFusion MX7, а в ColdFusion 8 были представлены сопоставления для конкретных приложений. Скорее всего, я не смогу выполнить вариант 1 или 2, поскольку они связаны с созданием сервера широкие изменения, которые могут конфликтовать с другими приложениями (у меня нет окончательного слова по этому поводу, но я готовлюсь к этому).

Тем не менее, есть ли кто-нибудь, кто был в аналогичном связывании и выполнил вариант 4, в любой версии ColdFusion или с какой-либо подобной платформой? Единственный вариант 4, о котором я могу подумать, - это изменение всей структуры для изменения этого жестко заданного пути, и даже если это сработает, это будет отнимать много времени и рискованно. Я вполне уверен, что если бы была простая модификация или другое простое решение, оно уже было бы включено в фреймворк (возможно, оно включено в версию 1.8 Mach-II, и я пока не знаю об этом).

Будем благодарны за любые мысли по поводу решения этой проблемы или даже по поводу неортодоксальных установок с библиотеками, которые имеют особые требования к пути Любые мысли от Team Mach-II будут особенно оценены ... мы здесь в одной команде, Мэтт! ; -)

EDIT

Очевидно, среда ColdBox включает в себя задачу refactor.xml ANT, которая включает цель, которая реорганизует код ColdBox для использования другого абсолютного пути в качестве основы наряду с несколькими другими полезными целями рефакторинга. Таким образом, проблема решена для пользователей ColdBox.

Глядя на build.xml для Mach-II (1.6 и 1.8), я не вижу там никакой цели, которая позволила бы мне провести рефакторинг кода. Я думал о создании заявки на запрос функции для такой задачи для Mach-II, но, честно говоря, я не думаю, что создание такой задачи ANT является большим приоритетом для команды MachII, так как потребность действительно относится только к

  • а) пользователи версий ColdFusion ниже 8
  • b) кто-то, кто хочет использовать несколько версий Mach-II в одном приложении, сомневаюсь, что они хотят поддерживать

Код ColdSpring, который у меня есть, вообще не поставляется с заданиями ANT, хотя у меня есть юнит-тесты, и я готов поспорить, что если я покопаюсь в SVN, я найду несколько сценариев сборки.

Использование Ant-задач для рефакторинга и повторного тестирования кода, или более простое (и вроде как отработанное) решение по созданию отдельного экземпляра ColdFusion для приложения - лучшие ответы, которые мне удалось придумать. Мне не нужно, чтобы это приложение существовало в общей области действия других приложений, поэтому моим первым решением будет попытка получить выделенный экземпляр CF для этого приложения.

Однако я также собираюсь посмотреть на задачу ANT ColdBox refactor.xml и посмотреть, смогу ли я изменить ее так, чтобы она работала в целом для распознавания и рефакторинга ссылок CFC с измененными абсолютными путями. Если я выполню эту задачу, я обязательно выложу код где-нибудь и отредактирую, создав ответ для ссылки на него. Если кто-то еще хочет покончить с этим или помочь мне с этим, не стесняйтесь.

До тех пор я оставлю этот вопрос открытым и посмотрю, придет ли кто-нибудь лучшее решение.

Ответы [ 6 ]

2 голосов
/ 09 ноября 2009

Fusebox не такой строгий, как мне кажется.

В режиме XML (возможно, я называю это не на 100% корректно, просто имею в виду использование Application.cfm ), это просто правильно включить в index.cfm , что-то вроде:

<cfinclude template="fusebox5/fusebox5.cfm" />

В не XML-режиме требуется правильное расширение в корне Application.cfc :

<cfcomponent extends="path.to.fusebox5.Application" output="false">

Все, что вам нужно, это знать путь.

1 голос
/ 10 ноября 2009

Исходя из ответа Аарона , символьные ссылки поддерживаются и следуют CF7 / 8, так что это может быть очень простым решением, если ваш системный администратор пропустит его. К сожалению, это не поможет вам, если вы на Windows

1 голос
/ 10 ноября 2009

Возможно, вы могли бы создать символическую ссылку и позволить операционной системе решить проблему для вас?

0 голосов
/ 23 декабря 2009

В последнее время я играю с FW / 1, и, хотя может показаться, что вам нужно добавить сопоставление и расширить org.corfield.framework, вы можете фактически переместить файл framework.cfc в корневой веб-каталог и просто расширить = "рамка". Это очень просто, и вы попадете прямо в отличную структуру без беспорядка и очень небольших накладных расходов.

0 голосов
/ 23 декабря 2009

Это должно быть так же просто, как удалить папку 'MachII' в корне вашего домена (например, example.com/MachII). Для использования Mach-II сопоставления не требуются, если вы просто развертываете в корне домена вашего сайта.

Также:

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

Введите новый билет на Mach-II Trac

Если вы хотите решить задачу ANT для нас, мы можем включить подобные вещи в сборки быстрее, чем ждать, пока член команды поработает над заявкой. Представления кода от сообщества приветствуются и приветствуются.

Мы не очень часто следим за переполнением стека, поэтому мы приглашаем вас присоединиться к нашей официальной группе сообщества под названием «Mach-II for ColdFusion» в группах Google. Группа Google - это лучшее место для того, чтобы задавать подобные вопросы или комментарии, если вы хотите получить отзыв от нашей команды.

0 голосов
/ 09 ноября 2009

Решение, с которым я столкнулся в stackoverflow, для другой, но связанной проблемы предложило создать отдельный экземпляр ColdFusion на сервере. Это позволило бы мне перейти к варианту 1), не создавая конфликтов с другими приложениями на сервере. Я не с нетерпением жду возможности передать это sys-admins, так что я надеюсь, что есть другое решение.

...