Ruby:URI 连接行为

标签 ruby uri

我目前正在开发一个 HTML 解析器,我来到了一个没有正确编码 url 的特定网站。在主页(“http://example.com/a/b”)上,我有一些以“a/b”开头但没有首字母“/”的链接。根据我对相对路径的理解,Ruby URI 可以正常工作:

uri = URI("http://example.com/a/b")
(uri + "a/b").to_s
==> http://example.com/a/a/b

但是,在 Firefox 或 Chrome 等浏览器中,行为似乎有所不同,因为页面指向 http://example.com/a/b。 (顺便说一句)。

您以前见过这种情况吗?要使 Ruby 中的行为与 Web 浏览器中的行为相同,您有什么建议?

最佳答案

我认为 uri + 'a/b' 只是在进行字符串连接。

我的建议是尝试这个:

File.join('http://www.example.com', 'a/b')

File.join 支持这种操作:)

关于Ruby:URI 连接行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029109/

相关文章:

ruby - 如果父记录被销毁,如何防止 ActiveRecord::Observer 记录依赖记录的删除?

ruby - 如何使用 ruby​​ 获取访问者的 ip?

ruby-on-rails - 如何使用法拉第模拟 rspec 中的请求超时

javascript - 将图像 URI 转换为 javascript 文件对象

ruby-on-rails - 如何只测试重定向到的 URL 的一部分(使用 assert_redirected_to)?

ruby - Ruby 中是否有用于表数据结构的内置数据类型或 gem?

java - 从 URI 启动 java 应用程序

url - DOMParser 中的可选 baseURI(位置)?

java - 为什么 @MatrixParam 值似乎只来自最后一段?

java - "/"的 Restful 路径用法