2012-08-15 84 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/

相關問題