1

我有一个小型 Rails 应用程序,它使用 Nokogiri 解析另一个站点上的 XML 文件。在本地,一切正常。

但是,当我将应用程序部署到 Heroku 时,事情很快就崩溃了——我不断收到错误消息no such file or directory - <my url>

基本上,我的代码中的行是

doc = Nokogiri::XML(open("http://www.w3schools.com/xml/note.xml"))

真实的 URL 是不同的,但我很困惑为什么在本地运行没有问题,但 Heroku 无法处理它。

4

1 回答 1

2

open-uri可能是根据您的请求创建 a Tempfile(而不是 a String)。Heroku 在访问文件系统方面有一些限制,并且可能无法识别您的临时文件。尝试:

url_text = Net::HTTP.get(URI.parse "http://www.w3schools.com/xml/note.xml")
doc = Nokogiri::XML(url_text)

编辑:没关系,看起来 Heroku 工作Tempfile得很好。您可能只需要require 'open-uri'在 Rails 初始化过程中的某个地方(例如,application.rb)。如果这仍然不起作用,请尝试上面的代码行。

于 2013-06-27T17:21:05.747 回答