Python:为什么“/ hello”被视为绝对路径组件,但对于网站而言,它被视为相对路径?

时间:2016-05-03 16:05:46

标签: python path

执行os.path.join('hello', '/hello', 'world')时,结果将是'/ hello / world'

文档说明“如果组件是绝对路径,则抛弃所有先前的组件并从绝对路径组件继续连接” 因此python将'/ hello'视为绝对路径。

现在当你有一个网站并使用例如<a href="/hello>hello</a>时,它是一个相对路径?(referring to stackoverflow answer

2 个答案:

答案 0 :(得分:1)

解释参数的方式完全取决于解释参数的程序或函数。在python中处理文件系统路径时,按照惯例,前导斜杠是指文件系统的根。但是,在Web世界中,服务器文件系统的根目录不能公开访问(希望)或与浏览站点的任何人相关,因此有一个主要的斜杠引用域的根 EM>

在你的html示例中,我认为/ hello路径仍然是绝对的,只是根被定义为域,而不是服务器文件系统的根。

答案 1 :(得分:0)

网址由多个组件组成。其中一条是路径。该路径可以是绝对的(/hello/world)或相对于其所在页面(hello/world)。在您描述的情况下,两个路径都是绝对路径。

然而,URL的另一个组件是主机。在您的href示例中,您的URL未指定使其相对于服务器/主机名的主机。所以路径不是相对的,但是服务器是。

如果页面在本地主机上提供,href将解析为http://localhost/hello/world之类的内容,但是如果它由example.com提供,它将解析为http://example.com/hello/world

(假设该方案为http,则可能是其他内容)