绝对或相对 URL 如果我的网站可能不在根文件夹中?

Absolute or Relative URL if my website may not be at the root folder?

我正在 2 URL:mywebsite.example.comexample.com/mywebsite 可以访问的 Web 服务器上开发一个网站。例如,当我访问 mywebsite.example.com/images/abc.jpgexample.com/mywebsite/images/abc.jpg 时,我得到相同的图片。

问题是,我的网站里面有很多link,我不确定应该使用绝对路径还是相对路径。

来自另一个问题 Absolute vs relative URLs 我发现有人建议使用相对于 root 的 URL(如 /images/abc.jpg),但是当我使用示例访问该网站时。com/mywebsite,每个 link 都会中断。

对于相对路径,我发现很难管理,因为网页位于不同的文件夹中,但使用包含一些 link 的相同模板。这意味着我必须手动将一些 link 设置为 ../ 和一些 ./.

我也尝试过使用 <base> 标签,但它与锚点混淆了。即使我尝试在 # 符号之前包含完整路径,某些 jQuery 库也无法正常运行,因为它们直接获取属性 href 中的值,但不会提取之后的部分#.

有没有更好的做法或建议?

我认为你应该使用相对 url,并将你的搜索集中在如何在模板中使用相对 url,这将相对于最终页面进行解析。

我不知道您使用的模板技术,但我看到了两个常见的解决方案:

  • 在模板中声明一个 "relative path" 变量,然后在不同的页面中使用新的相对路径覆盖它。使用此相对路径作为所有 urls 的前缀
  • 将 url 构建委托给知道最终页面的服务。像 resolveUrl(..)
  • 这样的想法