代码之家  ›  专栏  ›  技术社区  ›  TigerTiger

我应该使用网站内页面的相对路径吗?或者没关系?

  •  1
  • TigerTiger  · 技术社区  · 15 年前

    我只是想知道什么是定义链接到域名内页面的URL的最佳方法。例如,对于域www.example.com.。我可以有这样的链接

    <a href="http://www.domain.com/test.html">test</a>

    <a href="test.html">test</a>

    我遇到的一个问题是,在使用模板时……如果我将HTML模板与相关链接一起使用,那么我就不能对目录www.example.com/directory2使用相同的模板,因为公共链接对该页不起作用。既不是css也不是javascripts文件。

    我要么必须复制模板,要么绝对设置路径。我选择了绝对路径。所以模板路径以 http://www.mydomain.com/ ..。这是否会导致诸如多个HTTP请求、域解析或任何其他性能问题?你对此有何建议/意见?

    谢谢。

    7 回复  |  直到 15 年前
        1
  •  1
  •   Jon    15 年前

    虽然使用绝对路径不会增加任何额外的开销,但是本地链接的公认做法是使用相对链接。相对链接可以通过wget或down them all(网站下载工具)等工具不同于绝对链接。

    但是,如果您的模板化解决方案对绝对链接最有效,那么坚持使用它们并非闻所未闻。暂时来说,如果网站的内容被链接回原始页面(来源: http://www.navegabem.com/linking-strategy.html )

        2
  •  3
  •   cjk    15 年前

    一定要使用相对路径。

    这将为您提供不少功能,如果您的域名发生更改,将阻止您出现问题,并允许您 测试 在另一台服务器上,而不是在现场……

        3
  •  3
  •   Josh    15 年前

    你可以在所有的路径上建立根目录

    eg <a href="/test.html">test</a>
    

    这将与放置域相同。

    [编辑]如果需要,可以使用mod rewrite将站点移动到不同的文件夹-请参见 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritebase

    乔希

        4
  •  1
  •   Zteeth    15 年前

    我想你应该使用相对路径。因为如果您的域已经消失/改变了,站点仍然可以正常工作,而且,HTML中的路径会短得多。

    如果你想适应改变文件结构的情况。 假设您正在使用HTML开发网站。 我想您可以使用shtml/server-side include来分隔常见项,例如: 菜单

    这样,当结构发生变化时,您只需修改menu.shtml

    希望这有帮助

        5
  •  0
  •   Sergio    15 年前

    乔希的建议是可以的,但如果你的网站被放置在一个虚拟目录下,它将失败。我建议总是使用相对路径。

        6
  •  0
  •   jrharshath    15 年前

    始终是指站点中的资源(页面、CSS文件、JS文件)的相对路径。

    原因:

    1. 这可以让你在任何时候更改域名,而不会引起幽默的头痛。
    2. 允许您非常容易地重新构造页面。

    然而,如果你的网站真的那么大,你将需要有一个链接和链接ID的数据库,以避免在移动资源时把链接放错地方。这就是微软在microsoft.com上所做的。

    JRH

        7
  •  0
  •   CJM    15 年前

    我和乔希在一起……指定相对于应用程序根目录的路径:/myfolder/myfile.html

    在我的例子中,这有一个额外的优点,那就是在我的开发机器上工作,其中每个站点都是我默认站点之外的应用程序(IIS),并且在活动站点上工作。