【问题标题】:Absolute or Relative URL if my website may not be at the root folder?如果我的网站可能不在根文件夹中,是绝对 URL 还是相对 URL?
【发布时间】:2016-03-18 19:11:13
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我建议选择一个 URL 并坚持下去。 Redirect 您选择的其他 URL 并使用链接和图像的相对路径。见canonicalization
  • 不幸的是,我无法进行重定向,因为我不是服务器的所有者,也没有权限。如果我能够坚持使用其中一个 URL,我已经这样做了。

标签: html url relative-path absolute-path


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2012-05-28
    • 2011-01-13
    • 1970-01-01
    相关资源
    最近更新 更多