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フィードのようですが、ローカルホストでは正常に機能しますが、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 に答える