Asp.net 数据库中图像的相对路径取决于解决方案中的文件夹

Asp.net 数据库中图像的相对路径取决于解决方案中的文件夹,asp.net,visual-studio-2010,ms-access,relative-path,Asp.net,Visual Studio 2010,Ms Access,Relative Path,我有一个名为editprofile的.aspx页面,可以在我的~/Account/文件夹中找到。该页面本身允许用户上传新的用户头像、更改其详细信息等 当图像被保存时,它被保存到一个表(“userprofiles”)中,并被保存到一个名为AvatarURL的字段中,该字段具有一个相对路径,如:userprofiler avatar/image.jpg 我有一个单独的页面,位于上面的主解决方案目录detail.aspx中。当我试图显示图像时,图像没有出现,我发现这是因为写入数据库的路径是相对于“Ac

我有一个名为editprofile的.aspx页面,可以在我的~/Account/文件夹中找到。该页面本身允许用户上传新的用户头像、更改其详细信息等

当图像被保存时,它被保存到一个表(“userprofiles”)中,并被保存到一个名为AvatarURL的字段中,该字段具有一个相对路径,如:userprofiler avatar/image.jpg

我有一个单独的页面,位于上面的主解决方案目录detail.aspx中。当我试图显示图像时,图像没有出现,我发现这是因为写入数据库的路径是相对于“Account”文件夹的。我在数据库中编辑了一条记录,并在上面添加了额外的级别:Account/userprofiler avatar/image.jpg,然后图像就出现了

如何补偿此类环境因素,以便解决方案中的不同页面(无论它们位于文件夹层次结构中的何处)可以毫无困难地引用放置在此文件夹中的图像

以下是我的代码:


我将尝试更改以这种方式保存的路径

 Dim rootRelativeFilePath = "~/UserProfileAvatar/" &  User.Identity.Name & ".jpg"
然后

如果
UserProfileAvatar
是您的根站点文件夹的子文件夹,则应该可以使用此功能。
相反,如果
UserProfileAvatar
是帐户文件夹的子文件夹,则

 Dim rootRelativeFilePath = "~/Account/UserProfileAvatar/" &  User.Identity.Name & ".jpg"

这样,您就可以始终保存相对于站点根目录的路径。因此,尝试加载该文件的每个页面都可以通过
Server.MapPath
检索该文件,而不会被当前页面文件夹所欺骗。

我将尝试更改以这种方式保存的路径

 Dim rootRelativeFilePath = "~/UserProfileAvatar/" &  User.Identity.Name & ".jpg"
然后

如果
UserProfileAvatar
是您的根站点文件夹的子文件夹,则应该可以使用此功能。
相反,如果
UserProfileAvatar
是帐户文件夹的子文件夹,则

 Dim rootRelativeFilePath = "~/Account/UserProfileAvatar/" &  User.Identity.Name & ".jpg"

这样,您就可以始终保存相对于站点根目录的路径。因此,尝试加载该文件的每个页面都可以通过
Server.MapPath
检索该文件,而不会被当前页面文件夹所欺骗。

在数据库中保存时,可能没有设置正确的相对路径。您应该显示该代码以确保。@Steve我编辑了我的原始帖子以显示落后的代码。在数据库中保存时,您可能没有设置正确的相对路径。您应该显示代码以确保。@Steve我已经编辑了我的原始帖子以显示隐藏的代码