物理路径、根路径、虚拟路径、相对虚拟路径、应用程序路径和绝对路径的区别是什么?

19

我对.Net中资源可用路径的不同之处存在一些困惑。

我只是猜测物理路径是资源的操作系统目录路径。我很困惑,甚至无法确定我基本上需要使用哪个路径。

2个回答

14

关于ASP.NET应用程序,我会这样考虑:

物理路径:操作系统路径,使用驱动器/目录/文件来定位实际的应用程序,但实际的应用程序并不需要使用这个路径,而是使用虚拟路径进行映射。物理路径是操作系统定位资源的方式。 例如:c:\\inetpub\wwwroot\aspnetapp,实际应用程序只关心相对于其根目录的路径。

根路径:这将是您的aspnetapp根目录的URI或URL,或者适当的路由配置下的~/Home/Index(不要与Unix根目录命名约定混淆)。http://www.yardpenalty.com实际上可以作为此示例的物理路径在OS / NOS方面定位。

虚拟路径或相对虚拟路径:应用程序从其Web服务器识别出的路径,或被其识别出来的路径。

例如,在IIS(或OWIN)中,您可能有一个资源目录用于存储图像,它位于文件夹c:\\inetpub\ftp\images中,但开发人员将此文件夹映射到应用程序中,如下所示... ~\Images。因此,可以将其视为能够创建相对路径到应用程序及其用户可识别的资源,而这些资源实际上位于其他位置。

我想,在根应用程序下使用虚拟路径会有助于开发人员在一个或多个项目中给出单个应用程序在单个域下的外观。

绝对路径:到资源的完整路径。 假设您有一个链接,可以通过特定路由来访问:<a href="http://www.yardpenalty.com/home/about"> About</a>。如果此链接在布局或主页中,那么相对路径<a href="~/home/about">About</a>将更加简洁。在某些情况下,您需要硬编码绝对路径,但通常使用相对路径更明智,尤其是在开发涉及迁移时。


1
当前工作目录的相对路径 - 有时你会发现路径描述的格式类似于 ./Directory/Filename.Ext,这意味着该路径是相对于当前应用程序工作目录指定的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接