2012-08-15 82 views
4

我有一个页面FB Canvas应用程序,它通过iframe调用了我在Heroku上托管的一个页面。Facebook Canvas应用程序部分加载

直接通过我的heroku链接加载页面没有问题。但是,当我尝试通过画布应用加载页面时,它有时只会加载一半的HTML。我需要进行垃圾邮件刷新,才能让整个页面在应用中正确呈现。

我检查了我的页面对W3C验证程序,并没有语法问题。

它是Heroku慢吗?当我直接访问url时,加载速度非常快。

什么可能导致我的页面刚刚加载并停止?

+0

检查正在使用萤火虫或出事的HTTP请求。 – CBroe 2012-08-15 12:26:37

+1

我刚刚遇到这个问题,你有没有找到解决方案? HTTP POST请求在heroku日志中显示为200,但萤火虫/ Web控制台将请求显示为'HTTP 200' *和*'failed'。 – joar 2013-01-09 09:01:59

+0

你可以分享你的应用程序的链接 - 画布链接和应用程序链接 – 2013-01-09 09:15:35

回答

2

我在使用Heroku的时候遇到过这个问题,但是只有我和一个分别与应用程序相关的同事作为所有者和测试者时,其他帐户才能加载页面。

在24/3 ADSL上测试通过pagekite托管的同一应用可以完美工作。

HTTPS或HTTP似乎并不重要。我会说这是一个Heroku问题。


编辑:我不知道发生了什么,但问题不存在了。我想不出任何解决问题的方法,但是在问题消失之前和之后,我做了很多事情,比如在数据库中缓存远程数据,以及其他问题。我无法确定任何有关的帮助,或者这是Heroku基础架构中的一个隐藏问题。

我联系了Heroku关于这个问题,当他们回到我身边时,问题突然消失了。

我已经答应回复日志(包括应用程序和客户端HTTP/TCP日志),如果你有这个问题并且可以重现它,捕获日志并将它发送到Heroku support。捕获TCP流量可以使用wireshark完成,Heroku应用程序日志可通过heroku logs获得。

+0

当我遇到此问题时,除应用程序所有者之外的其他用户也有同样的问题。我的结论是,这只是服务器的响应速度缓慢。我在heroku上托管它的价值。 – super9 2013-01-12 09:02:17

+0

@ super9我也使用heroku来托管该应用程序,但是我没有能够与没有连接到应用程序的任何用户一起再现它。 – joar 2013-01-14 11:25:30

1

我也有这个问题。我认为这是关系到这个问题的问题:iFrame showing up Blank in Facebook Canvas App

如果是使用瓶试试这个代码Python应用程序: 从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() 

主动将其与这条线:

app.wsgi_app = StreamConsumingMiddleware(app.wsgi_app) 

来源:http://flask.pocoo.org/snippets/47/

相关问题