2009-04-07 101 views
3

我困擾着一個令我困惑的時刻。我有一個 佈局,其中包含一些HTML和一部分(用於導航) - 那裏 沒有別的除了產量。Rails部分渲染會導致空白頁面?

  1. 如果NAV是作爲一個部分我什麼也沒有回到 瀏覽器在所有(空白頁),但如果我刪除了部分的頁面正常工作
  2. 如果我一切看上去正常
  3. 把導航代碼直接在它的工作模板
  4. 如果我用一個簡單的字符串替換局部導航代碼,我再次得到 空白頁。

有沒有人有任何想法,可能是什麼問題,或知道如何 我可能會調試它?

回答

1

發現問題,部分是在佈局文件夾中,而不是 相關控制器視圖文件夾。

但是,Rails拋出了一個ActionView :: MissingTemplate異常 ,這隻能通過調試器看到,這可能是一個錯誤。

+1

您是否正在生產模式下運行?除非您處於開發模式,否則堆棧跟蹤錯誤不會顯示在視圖中。 – 2009-04-07 20:03:55

0

首先,檢查日誌文件以查看是否在某處收到錯誤消息。如果不幫助請按照下列步驟操作:

  • 使模板&部分,鏈接爲原
  • 測試的副本,他們表現出的問題
  • 開始從他們身上取出的東西,直到你有最簡單的情況下,仍然存在問題(部分測試中的字符串是朝這個方向邁出的一步)
  • 如果您在該過程中未弄清楚,請回過頭來編輯您的問題,以包含簡化代碼案例
0

我在很多場合都遇到了這個錯誤。這個問題一直通過改變冒犯模板或其中一個部分來解決(在我最近的情況下,我在</div><div>之間的源文件中添加了一個空白行,該模板部分地被模板調用;更改模板本身沒有影響)。真奇怪的是,當我實際改變一個模板時,這個問題很少發生,但通常當我改變相關的東西時(例如,編輯頁面中顯示的圖像或與頁面相關的CSS)。雖然問題通常與部分相關,但整個頁面是空白的,而不僅僅是部分提供的部分。

順便說一句,重新啓動Web服務器(在這種情況下Unicorn)不能解決問題。運行Ruby 1.9.3,Rails 3.1.3。使用SASS和Unicorn。

更新:剛剛確定Rails正在返回一個304-未修改,基於我的瀏覽器發送的「If-none-match」頭(而後者基於上一頁的ETAG)。但是,在此期間,瀏覽器清除了窗口。所以,據推測,Rails發送的東西導致瀏覽器清除窗口。