#asp.net #visual-studio
#asp.net #visual-studio
Вопрос:
Я должен внести некоторые изменения в приложение, которое имеет много жестко запрограммированных путей. Эти пути основаны на предположении, что путь к приложению равен нулю. Но когда я запускаю локально в Visual Studio, путь к приложению — это что-то другое. Таким образом, на рабочем сервере имя может быть «http://example.com/default.aspx «, в то время как локально это что-то вроде «http://localhost:1234/myapp/default.aspx «.
Есть ли какой-либо способ установить путь к приложению в Visual Studio, чтобы я мог установить для него значение null?
И да, да, я знаю, что «правильный ответ» заключается в устранении жестко закодированных путей. В долгосрочной перспективе я бы с удовольствием это сделал. Но это было бы большой работой для скромного изменения, а затем мне пришлось бы протестировать все в поле зрения, чтобы убедиться, что я ничего не напортачил.
Ответ №1:
В свойствах проекта webapp в разделе Web в разделе Серверы вы можете выбрать сервер и путь к приложению на этом сервере. Если вы используете Visual Studio Development Server, путь по умолчанию — «/».
Кроме того, когда вы публикуете свое приложение, вы можете выбирать профили с их относительным целевым местоположением (щелкните правой кнопкой мыши проект и опубликовать).
Наконец, вы можете использовать символ ~ (тильда) перед вашими относительными жестко заданными путями, чтобы указать, что они принадлежат корневой папке webapp.
Комментарии:
1. Ах, как и многое другое, это легко, когда вы знаете, как это сделать. Спасибо. ПОВТОРИТЕ тильду: да, я знаю об этом, но (а) мне пришлось бы запускать весь код, изменяя его, и я бы предпочел не менять страницы, на которых нет изменений требований; и (б) что более важно, многие абсолютные пути находятся в тегах, отличных от asp, <script> и <img> и <a> выполняются с помощью обычного HTML, а не разновидностей asp. Конечно, многое из этого следует очистить, но я не хотел делать это сегодня.
2. PS Для меня по умолчанию не используется значение «/» — по умолчанию используется имя каталога проекта. Возможно, это где-то задано, или мы используем разные версии VS. Неважно. Я обычно предпочитаю не-/ default, поэтому я могу сказать, что все работает независимо от пути.