#asp.net #web-applications
#asp.net #веб-приложения
Вопрос:
Я работаю в VS2010 ASP.NET , Я решил переместить некоторые из моих страниц в папки, и они ссылаются на страницы в других папках. Когда я запускаюсь в режиме виртуальной отладки в VS, он работает нормально, но когда я развертываю его на хост-сервере, страницы не могут видеть друг друга. я пытался использовать ../FolderName/Webpage.aspx, ~/FolderName/Webpage.aspx и до сих пор безрезультатно.
Однако, если у меня есть веб-страница, которой нет в папке, а затем ссылаться на страницу в папке, она работает нормально. У кого-нибудь еще есть эта проблема?
Ответ №1:
Лучше всего использовать ResolveUrl
для ссылки на все ресурсы, такие как файлы javascript, файлы css и т.д.
Например:
<script src='<%=ResolveUrl("~/Javascript/datables-extensions.js")%>' type="text/javascript"></script>
Что касается страниц, ссылающихся на другие страницы, вы должны иметь возможность использовать относительный путь ( ../Folder/other_page.aspx
) без каких-либо проблем. Не используйте абсолютные пути, иначе на вашем веб-сайте возникнут проблемы, подобные описанным вами, при развертывании в другой среде с другой структурой папок.
Комментарии:
1. @lcarus Спасибо. Будет ли ResolveUrl также работать для ссылки usercontrol в верхней части страницы? Я также получал ошибку MagicAjax. Я думаю, это было потому, что он не мог найти путь.
2. @tszoro: Я не думаю, что это необходимо делать для элемента управления. Вы можете просто перетащить его на свою страницу. Visual Studio добавит для вас правильный относительный путь. В общем, просто используйте относительные пути для ссылок на страницы / элементы управления. ResolveUrl лучше всего подходит для ссылки на файлы javascript / css.
3. @lcarus как насчет файла web.config? <forms loginUrl=»~/Login.aspx» timeout=»2880″/>
4. @tszoro: Нет, вы не можете использовать ResolveUrl внутри Web.config. ResolveUrl — это метод, унаследованный от
Control
. Используйте относительный путь, как вы делаете сейчас.5. @lcarus Как мне разрешить пользовательский элемент управления при регистрации в верхней части страницы? Я пытался, но получил ошибку. <%@ Register Src=»../UserControls/BomItem.ascx» tagName=»BomItem» TagPrefix=»uc1″ %>