0

我正在做一些简单的 RSS 解析和渲染——在本地主机和 Heroku 的生产环境中工作得非常好,但由于某种原因,这个特定的 RSS 提要仅在本地主机上有效,但在 Heroku 上部署时无效。

这是RSS提要:

http://careers.joelonsoftware.com/jobs/feed?tags=network

这是我在 Heroku 上遇到的错误:

A ActionView::Template::Error occurred in jobs#index:
503 Service Unavailable
/usr/local/lib/ruby/1.9.1/open-uri.rb:346:in `open_http'

这是我的代码:

@rss = RSS::Parser.parse(the_rss_feed, false)
render :partial => "layouts/rss_syndicated_jobs", :locals => {:rss => @rss}

我要求:

require 'rss/2.0'
require 'open-uri'

这似乎是一个完全有效的 RSS 提要 - 再次,在 localhost 上工作正常 - 但在 Heroku 部署时却不行......有什么想法吗?

4

1 回答 1

1

该域不喜欢 Heroku 的服务器发出 HTTPGET请求。

来自 Heroku

➜  deefour ✗ heroku run "curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null"
Running `curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null` attached to terminal... up, run.9211
HTTP/1.0 503 Service Unavailable
Cache-Control: no-cache
Connection: close
Content-Type: text/html

从本地机器

➜  deefour ✗ curl -s -D - careers.joelonsoftware.com/jobs/feed -o /dev/null 
HTTP/1.1 200 OK
Cache-Control: private, max-age=1800
Content-Type: application/rss+xml; charset=utf-8
Expires: Tue, 27 Nov 2012 02:46:38 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: x-requested-with
Access-Control-Max-Age: 60
Date: Tue, 27 Nov 2012 02:16:38 GMT
Content-Length: 10982

如果您通过 Heroku 打印响应正文,它会提供以下信息

此 IP 仅允许访问我们的 API。为了保护我们的用户,我们无法处理来自该 IP 地址的请求。如果您认为您错误地访问了此页面,请与我们联系。

于 2012-11-27T02:18:58.780 回答