2012-08-15 7 views
4

나는 Heroku에서 호스팅 한 페이지를 iframe을 통해 호출하는 단일 페이지 FB Canvas 앱이 있습니다.Facebook Canvas 앱 부분적으로로드 중

내 heroku 링크를 통해 페이지를 직접로드해도 문제가 없습니다. 그러나 캔버스 응용 프로그램을 통해 페이지를로드하려고하면 HTML의 절반 만로드하는 경우가 있습니다. 전체 페이지를 앱에서 올바르게 렌더링하려면 스팸 새로 고침이 필요합니다.

W3C 유효성 검사기에 대한 내 페이지를 검사 했으므로 구문 문제가 없습니다.

그냥 천천히 헤로 우크입니까? URL에 직접 액세스하면 꽤 빨리로드됩니다.

내 페이지가 중간에로드되어 중단 될 수있는 원인은 무엇입니까?

+0

확인 방화범 또는 무언가를 사용하여 일어나고있는 HTTP 요청. – CBroe

+1

방금이 문제가 있습니다. 해결 방법을 찾았습니까? HTTP POST 요청은 heroku 로그에 200으로 표시되지만 firebug/web 콘솔은 요청을 'HTTP 200'* 및 *'failed'로 표시합니다. – joar

+0

캔버스 링크 및 앱 링크 –

답변

2

Heroku를 사용하는 동안이 문제가 있었지만 나와 소유자 및 테스터로 앱에 연결된 동료에게만 다른 계정이 페이지를 잘로드 할 수있었습니다.

24/3 ADSL을 통해 pagekite을 통해 호스팅되는 동일한 앱을 완벽하게 테스트 할 수 있습니다.

HTTPS 또는 HTTP가 중요하지 않습니다. 나는 이것이 Heroku 문제라고 말하고 싶다.


편집 : 무슨 일이 일어 났는지는 모르겠지만 문제는 더 이상 없습니다. 내가 문제를 해결 한 어떤 것도 생각할 수는 없지만 DB에 원격 데이터를 캐시하는 등의 문제가 사라지기 전후에 많은 작업을 수행했습니다. 헤로 쿠 인프라 스트럭처에서 숨겨진 문제이거나 도움이되는 것이 무엇이든 확신 할 수는 없습니다.

나는이 문제에 대해 헤로 쿠에게 연락했다. 나에게 돌아 왔을 때, 그 문제는 갑자기 사라졌다.

이 문제가 발생하여이를 재현하고 로그를 캡처하여 Heroku support (으)로 보내면 로그 (애플리케이션 및 클라이언트 HTTP/TCP 로그)로 돌아가겠다고 약속했습니다. TCP 트래픽 캡처는 wireshark으로 수행 할 수 있으며 Heroku 응용 프로그램 로그는 heroku logs을 통해 사용할 수 있습니다.

+0

이 문제가 발생했을 때 응용 프로그램 소유자를 제외한 다른 사용자도 같은 문제를 겪었습니다 . 나는 서버가 느리게 응답한다는 결론을 내렸다. 나는 그 가치가 무엇인지 heroku에서 호스팅하고있었습니다. – super9

+0

@ super9 나 역시 응용 프로그램 호스팅에 heroku를 사용하지만 응용 프로그램에 연결되어 있지 않은 사용자와 함께 heroku를 재현하지 못했습니다. – joar

1

이 문제도 발생했습니다. 이 라인 werkzeug.wsgi 수입 LimitedStream에서 그것을

class StreamConsumingMiddleware(object): 

    def __init__(self, app): 
     self.app = app 

    def __call__(self, environ, start_response): 
     stream = LimitedStream(environ['wsgi.input'], 
           int(environ['CONTENT_LENGTH'] or 0)) 
     environ['wsgi.input'] = stream 
     app_iter = self.app(environ, start_response) 
     try: 
      stream.exhaust() 
      for event in app_iter: 
       yield event 
     finally: 
      if hasattr(app_iter, 'close'): 
       app_iter.close() 

활동 :이 플라스크는이 코드를 시도하여 파이썬 응용 프로그램의 경우 iFrame showing up Blank in Facebook Canvas App

: 나는이 문제의 문제와 관련된 생각

app.wsgi_app = StreamConsumingMiddleware(app.wsgi_app) 

출처 : http://flask.pocoo.org/snippets/47/