string path = context.Server.MapPath("~/Temp");
或
string path = context.Server.MapPath("/Temp");
是一样的吗?
我知道'〜'代表root,但想知道diff bw ~/folder
和/folder
答案 0 :(得分:9)
服务器控件中的绝对和相对路径引用具有 以下缺点:
绝对路径在应用程序之间不可移植。如果你动了 绝对路径指向的应用程序,链接将中断。
客户元素风格的相对路径可能很难 如果您将资源或页面移动到不同的文件夹,请进行维护。
为了克服这些缺点,ASP.NET包含Web应用程序 root运算符(〜),可以在服务器中指定路径时使用 控制。 ASP.NET将〜运算符解析为当前的根 应用
请参阅http://msdn.microsoft.com/en-us/library/ms178116(v=vs.100).aspx
~/
解析为应用程序根目录。
/
解析为网站根目录。
当呈现服务器资源(如控件或视图)时,~/
路径将根据应用程序的结构和上下文解析为站点根路径(因为~/
对于Web无意义浏览器)。
为了简化,应用程序根目录(~/
)几乎总是ASP.Net应用程序(Web表单和MVC)中的正确选择。