2009-11-12 2 views
0

Привет Я развертываю приложение MVC в IIS на Win7. Я развернул его на localhost/appPortal. appPortal настроен как приложение, а не виртуальный каталог. К сожалению, корень приложения в MVC сопоставляется с localhost вместо localhost/appPortal. Это разрушает все мои ссылки на скрипты, css, изображения и т. Д. Может ли кто-нибудь помочь мне понять, почему это происходит и как его исправить?ASP.Net MVC Application указывает на localhost вместо каталога приложения

ответ

2

Дополнительная информация будет интересна в отношении того, как вы создаете ссылки.

Первое, что нужно проверить, это то, что приложение правильно создано в IIS, и я полагаю, что это так. (Если нет, то вы, вероятно, получите ошибки из вложенных файлов web.config)

Вторая вещь, URLs должны быть созданы, как это и не напрямую:

<%= Url.Content("~/yourpath/yourfile.css") %> 

Может быть, это question about Url.Content показывает вам больше возможностей. Проверьте также документацию MSDN на UrlHelper и HtmlHelper.

+0

На самом деле приложение разработано другой командой, которая размещает его на своем корневом сервере IIS. Все ссылки на активы используют относительные пути, выбранные VS2008 во время разработки. Приложение означает, что представления отображаются правильно, но скрипты, CSS не работают. Мне нужно изменить ref. для всего статического контента, такого как ваше решение? – Hemant

+0

Проблема в том, что JS не знает vdir. Наше решение прямо сейчас создает объект JS в скрипте, вызванном из мастера, который имеет свойство со значением текущего пути vdir, то есть: Globals.rootPath = "/ vdir /" или "/", если это субдомен. Для ссылки на CSS и скрипты мы используем Url.Content. –

0

Лучшее решение - не использовать укороченные ссылки в вашем приложении (те, которые начинаются с /). Вы можете использовать ~/в качестве ссылки на корень приложения. Я использую такие вещи

<script src="<%=ResolveClientUrl("~/script/something.js") %>" 

для решения/скриптов. Это сделает ваше приложение более портативным.

0

Вы также можете использовать тип документа HTML 5 и тег <base>.

Да, я просто сделал это.

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

Смежные вопросы