[нуб] а что у нас заместо App.Path?

Программирование Web-приложений и Web-сервисов.

Модератор: Ramzes

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

[нуб] а что у нас заместо App.Path?

Сообщение tyomitch » 24.06.2006 (Сб) 22:13

когда пишу в файлы по относительным адресам, они почему-то хотят создаваться в \WINNT\system32 -- как указать, чтобы они создавались в той же папке, в которой лежит aspx?
Изображение

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 25.06.2006 (Вс) 0:00

Public ReadOnly Property PhysicalApplicationPath() As String
Member of System.Web.HttpRequest

Summary:
Gets the physical file system path of the currently executing server application's root directory.

Return Values:
The file system path of the current application's root directory.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 02.07.2006 (Вс) 21:54

Вообще, везде, где есть пути, лучше всего использовать ResolveUrl("~/") - ~/ означает корневую директорию приложения.
Например, в разметке сделав вот так:
Код: Выделить всё
<img src="<%= ResolveUrl("~/Images/Logo.gif") %>" />

Мы раз и навсегда застрахуемся от проблем использования нашей страницы.
Например, если использовать
Код: Выделить всё
<img src="/Images/Logo.gif" />

то при изменении пути с http://localhost/Web на http://localost картинка видна не будет, а если использовать
Код: Выделить всё
<img src="Images/Logo.gif" />

то при использовании перезаписи путей картинка будет не видна, если к странице обращаться не как http://localhost/, а как что-то вроде http://localhost/2006/10/10/Hello/World/News.aspx.
С другой стороны, если подобные перемещения не планируются, то использование статических путей без ResolveUrl будет чуть-чуть быстрее (реально не ощутимо).

В коде я тоже предпочитаю использовать ResolveUrl для получения адресов, а Server.MapPath для получения полных путей, опять же используя ~/.

Код: Выделить всё
C++
public:
static String^ MapPath (
   String^ virtualPath
)


Parameters
virtualPath
The virtual path (absolute or relative).



Return Value
The physical path on the server specified by the virtualPath parameter.

Код: Выделить всё
public:
String^ ResolveUrl (
   String^ relativeUrl
)


Parameters
relativeUrl
The URL associated with the TemplateSourceDirectory property.

Return Value
The converted URL.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в ASP.NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 30

    TopList