【问题标题】:Relative path from site root站点根目录的相对路径
【发布时间】:2011-12-19 02:14:47
【问题描述】:

我觉得问这个问题很麻烦,但我想不通.. 我发现几个帖子 (here's one) 说要使用来自您网站根目录的相对路径,请启动路径/,例如:

<img src="/images/img1.jpg" />

我的档案。看起来像

-root
  -images
  -css
  -index.aspx
  -subFolder
    -test.aspx

现在当我使用如上所示的src 路径时,它在index.aspx 或test.aspx 中都不起作用,但是当我删除/ 时,它适用于index.aspx。在 test.aspx 中,我使用了../images/img1.jpg,它可以工作。是什么赋予了?为什么我上面的例子不起作用?

【问题讨论】:

  • 这是来自 Visual Studio 还是实际部署时?
  • 通过VS本地启动项目时
  • 那么当你运行它时,这个 URL 在浏览器中是什么样子的呢?我可能在想别的东西,但我记得 VS 有时会插入一个额外的目录。适合我。
  • 呸,是的.. 显然“根”文件夹是我根文件夹上方的文件夹.. 那是愚蠢的。当我部署我的站点时,我将不得不去改变我的所有路径? >_

标签: asp.net html relative-path


【解决方案1】:

您的站点可能位于虚拟目录中,因此“/”指的是 IIS(或任何 Web 服务器)看到的实际 Web 根目录 - 可能是您的“根”文件夹上方的文件夹

.

【讨论】:

  • 谢谢,就是这样。为什么会这样做?上面的文件夹是 Websites 我所有的 VS2008 项目都在其中。这意味着当我部署到服务器时,我将不得不更改所有路径?!您是否有机会知道是否可以在 VS 中配置“根”文件夹?
  • 我不从 VS 运行网站,所以我真的不知道。但我不这么认为。我在 XP 上使用 IIS 5,所以只有一个根(或“默认”)站点。其他任何东西都必须是虚拟的——这很糟糕,因为这不是它在生产中使用“真实”网络服务器的方式。我在内存中保留了一个“rootFolder”字符串,我在任何地方都添加了它。对于开发,该值为“/root”,而对于生产,该值为“/”。很痛苦,但它有效。
  • 哦,我现在了解虚拟目录.. 它实际上并没有转到“根”的父文件夹。我可以通过在解决方案资源管理器中选择网站并在属性面板中将Virtual Path 更改为/ 来更改根目录:) 再次感谢!
【解决方案2】:

相对路径有效,因为它们根据位置遍历目录,因此对于 index.aspx,它需要进入 images 文件夹并获取 img1.jpg,对于 test.aspx,它需要上一层..然后进入 images 文件夹并获取 img1.jpg。

绝对路径是基于 IIS 设置安装应用程序的。如果您只是从该文件夹中测试它,您的绝对路径需要包含根文件夹。 /root/images/img1.jpg 然后它将在具有相同绝对路径的测试和索引中工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2012-10-11
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多