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

时间:2016-03-18 19:11:13

标签: html url absolute relative absolute-path

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

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

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

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

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

会有更好的做法或建议吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

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

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

  • 在模板中声明一个“relative path”变量,然后使用新的相对路径在不同的页面中覆盖它。使用此相对路径作为所有网址的前缀
  • 委托网址构建到了解最终页面的服务。有点像resolveUrl(..)