4

这是Converting file path to URI的后续问题。

考虑:

require 'uri'

uri = URI.join('file:///', '/home/user/dir1/dir2/dir3/name.ext')
 => #<URI::Generic:0x0000000263fcc0 URL:file:/home/user/dir1/dir2/dir3/name.ext>

uri.to_s
 => "file:/home/user/dir1/dir2/dir3/name.ext"

结果不合法吗?不应该是"file://home/..."双斜线吗?

4

1 回答 1

5

No. file://home/...是指主机上名为“home”的文件。完整的语法是file:///home/...,带有三个斜杠,其中空主机组件表示本地主机。但是,大多数识别“文件”方案的 URI 解析器也file:/pathname只接受一个斜杠;缺少双斜线意味着主机组件被跳过。

于 2012-05-13T13:07:40.533 回答