2012-03-13 3 views
0

В моем приложении у меня есть заголовок и нижний колонтитул. В моем приложении Application.cfc я создал функцию, которая называет мое приложение и устанавливает сопоставление.Использование <cfinclude> с этим.mapping

<cfcomponent output="no"> 
<cfset this.name = "thesitename"> 
<cfset this.datasource = "thesitedatasource"> 
<cfset this.rootDir = getDirectoryFromPath(getCurrentTemplatePath()) /> 
<cfset this.mappings = structNew()> 
<cfset this.mappings["/planning"] = "#this.rootDir#planning/" /> 
<cfset this.mappings["/images"] = "#this.rootDir#images/" /> 
<cfset this.mappings["/includes"] = "#this.rootDir#includes/" /> 
<cfset this.mappings["/js"] = "#this.rootDir#js/" /> 
<cfset this.mappings["/portfolio"] = "#this.rootDir#portfolio/" /> 
</cfcomponent> 

Если у меня есть страница в подкаталоге, как это: planning/index.cfm<cfinclude> ничего в папке с изображениями, когда я использую следующий путь не может найти: <li class="imagelink"><img src="/images/facebook.png"></li>

страницы в корневом каталоге не иметь проблему.

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

ответ

7

Отображения ColdFusion полностью отделены от «псевдонима» веб-сервера или «виртуального каталога». Чтобы ваш код работал, вам нужно будет добавить сопоставление веб-сервера, «псевдоним» в Apache или «виртуальный каталог» в IIS с именем «изображения», указывающий на каталог, в котором вы храните изображения.

Отображение ColdFusion изображений «изображений» будет работать только в ColdFusion - например, при создании объекта вы можете использовать createObject («component», «images.image») (если, конечно, у вас есть CFC с именем Image в этой диктории.

+0

Так что, по существу, нет возможности использовать this.mapping и корректно работать с cfinclude. Итак, какой тип кодирования использует синтаксис '. ./images)? – Ofeargall

+1

Вы можете использовать cfinclude для включения файлов ColdFusion, которые могут находиться в каталоге «images», но когда вы указываете атрибут src тега img, который сообщает веб-браузеру, где искать файл, - и веб-браузер не знает (и не должен) сопоставлений ColdFusion. Легко исправить вашу проблему - создать «псевдоним», если на Apache или «виртуальном руководстве» ry ', если в IIS с именем' images ', который указывает на папку, в которой хранятся изображения. Это будет «просто работать», –