我有一个页面FB Canvas应用程序通过iframe调用我在Heroku上托管的页面。
直接通过我的heroku链接加载页面没有问题。但是,当我尝试通过画布应用程序加载页面时,它有时只加载一半的HTML。我需要垃圾邮件刷新,以便整个页面在应用程序中正确呈现。
我已针对W3C验证程序检查了我的页面,并且没有语法问题。
Heroku刚慢吗?当我直接访问网址时,它加载速度非常快。
什么可能导致我的网页加载到中途停止?
答案 0 :(得分:2)
我在使用Heroku时遇到了这个问题,但仅限于我和同事分别与该应用作为所有者和测试人员相关联,其他帐户可以正常加载页面。
通过pagekite通过24/3 ADSL测试同一个应用程序,效果非常好。
HTTPS或HTTP似乎并不重要。我会说这是一个Heroku问题。
我联系Heroku了解这个问题,当他们回到我身边时,问题突然消失了。
我已答应回复日志(应用程序和客户端HTTP / TCP日志),如果您遇到此问题并可以重现它,请捕获日志并将其发送到Heroku support。使用wireshark可以捕获TCP流量,并且可以通过heroku logs
获取Heroku应用程序日志。
答案 1 :(得分:1)
我也有这个问题。我认为这与此问题中的问题有关:iFrame showing up Blank in Facebook Canvas App
如果是使用Flask的Python应用程序,请尝试以下代码: 来自werkzeug.wsgi import 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)