Запуск сайта CFWheels из подпапки вместо корневой папки

Мой сайт CFWheels работает в подпапке/ в корневом каталоге веб-сайта, и у меня есть файл web.config на том же уровне, что и подпапка/. В моем web.config у меня есть необходимое правило перезаписи URL-адреса для удаления подпапки/index.cfm/ из URL-адреса.

Моя проблема возникает, когда я пытаюсь включить файл Javascript из папки javascripts по умолчанию, используя

javaScriptIncludeTag("script.js")

По умолчанию cfwheels ищет JS-файл в /subfolder/javascripts/. Однако я удалил подпапку/ из URL-адреса, поэтому запрос к /subfolder/javascripts/script.js завершается со следующим сообщением об ошибке:

Wheels.ViewNotFound

Не удалось найти страницу просмотра для действия javascripts в контроллере подпапок.

Подделка. javascripts и подпапка - это не действие, а контроллер.

Я считаю, что запрос /javscripts/script.js будет успешным. Как мне указать cfwheels не искать папку javascripts/ в подпапке/?

Мне не удалось найти ответ в документации, и я также не получил никакого ответа в группе Google CFWheels. Я ищу ответ подобно этому, но только для CFWheels.

редактировать
IIS 7 переписать web.config:

<rule name="Remove subfolder/index.cfm">
    <match url="(.*)" />
    <action type="Rewrite" url="/subfolder/index.cfm/{R:0}" />
</rule>

Моя проблема может быть здесь, если это правило неверно, я не уверен.

linkTo() на самом деле также ссылается на неверный путь.

linkTo(text="Say Hello", controller="say", action="hello")

выходы

<a href="http://mysite.com/subfolder/index.cfm/say/hello">Say Hello</a>

person Riley Watkins    schedule 24.03.2011    source источник
comment
Можете ли вы опубликовать свой файл перезаписи URL? Вы переписываете на rewrite.cfm? Являются ли вызовы linkTo() и подобные записи правильными URL-адресами?   -  person Chris Peters    schedule 24.03.2011
comment
Я не переписываю в rewrite.cfm, поскольку в документации об этом не упоминается в отношении IIS 7. Я обновил вопрос, указав правило перезаписи и вывод linkTo().   -  person Riley Watkins    schedule 24.03.2011


Ответы (1)


Я думаю, проблема в том, что вы забываете сбросить javascript и другие папки для cfwheels.

Я написал, что покрыл это некоторое время назад:

http://rip747.wordpress.com/2009/02/23/cfwheels-url-rewriting-in-a-subfolder/

хотя это было для другого переписчика URL, я уверен, что вы могли бы перенести правила в IIS7.

person rip747    schedule 24.03.2011
comment
Ах, похоже, мне следует перезаписать /subfolder/rewrite.cfm/{R:1} вместо /subfolder/index.cfm/{R:1} (мне было интересно, для чего нужен rewrite.cfm.) Однако даже после этого изменения linkTo() по-прежнему генерирует http://mysite/subfolder/say/hello. Как теперь удалить подпапку из URL-адреса? - person Riley Watkins; 25.03.2011
comment
Хорошо, теперь я вижу, что правило перезаписи URL-адресов ColdFusion on Wheels по умолчанию должно выполнять все необходимые мне перезаписи, его просто нужно включить. Это было упущением с моей стороны, но теперь сайт работает отлично. Однако я все же хотел бы удалить subfolder/ из URL-адреса. Это можно сделать? - person Riley Watkins; 25.03.2011
comment
@Riley Я думаю, что вам нужно будет настроить сервер для поддержки нескольких сайтов, а затем сопоставить каждый сайт с его каталогом, т. Е. Сайт, на который нужно перейти, wwwroot / subfolder1 Таким образом, вы можете напрямую получить доступ к сайту без subfolder1 в URL-адресе - person n_kips; 28.10.2011