Компонент ColdFusion запускается с неправильного пути

Я инициирую CFC:

<cfset config = new dir.dir1.config() />

Это прекрасно работает. Но вдруг и, по-моему, без объяснения причин инициирует:

<cfset config = new anotherdir.dir.dir1.config() />

Хотя код показывает первый экземпляр, и если я удалю или переименую файл anotherdir.dir.dir1.config, он выдаст ошибку, что компонент не может быть найден.

Какие обстоятельства могут вызвать такое поведение? Я в конце пути со своей мудростью.


person Bernhard Kraus    schedule 25.06.2015    source источник
comment
Прежде всего, я думал, что где-то в приложении есть какое-то сопоставление, но его нет.   -  person Bernhard Kraus    schedule 25.06.2015
comment
Я только что узнал, что если я создаю экземпляр компонента с помощью ‹cfset configObj = new /dir/dir1/config() /›, он работает. Как можно ошибиться с точечной записью? После перезапуска службы CF проблема исчезла.   -  person Bernhard Kraus    schedule 25.06.2015


Ответы (1)


При использовании точечной нотации CF сначала просматривает путь относительно папки, в которой вы находитесь. CF может найти cfc на пути относительно файла, в котором вы находитесь, прежде чем он проверит путь от корня.

Если ваш код говорит

<cfset config = new dir.dir1.config() >

и файл, в котором вы запускаете свой код, находится в каталоге «anotherdir», тогда он создаст экземпляр Anotherdir.dir.dir1.config. Если вы находитесь за пределами «другого каталога» и относительный путь не может быть разрешен, он попытается найти компонент в корневом каталоге.

person beloitdavisja    schedule 25.06.2015
comment
Хорошо, это объяснение. Спасибо. - person Bernhard Kraus; 25.06.2015