2010-07-16 34 views
8

我有一個Rails應用程序正在爲開發中的每個請求生成重複請求。該應用程序在運行Ubuntu 10.4的主要開發機器上運行Rails 2.3.5。但是,相同的代碼運行正常,沒有在我的OS X 10.6框上顯示重複的請求。它也可以在任何一臺機器上以生產模式運行而不會出現問題Rails應用程序日誌記錄重複請求

Processing DashboardController#index (for 127.0.0.1 at 2010-07-16 10:23:08) [GET] 
    Parameters: {"action"=>"index", "controller"=>"dashboard"} 
Rendering template within layouts/application 
Rendering dashboard/index 
    Term Load (1.9ms) SELECT * FROM "date_ranges" WHERE ('2010-07-16' BETWEEN begin_date and end_date) AND (("date_ranges"."type" = 'Term')) 
    StaticData Load (1.1ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
Rendered dashboard/_news (0.1ms) 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    StaticData Load (0.9ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'TAG_LINE') LIMIT 1 
Completed in 67ms (View: 58, DB: 5) | 200 OK [http://localhost/dashboard] 
    SQL (0.4ms) SET client_min_messages TO 'panic' 
    SQL (0.4ms) SET client_min_messages TO 'notice' 


Processing DashboardController#index (for 127.0.0.1 at 2010-07-16 10:23:08) [GET] 
    Parameters: {"action"=>"index", "controller"=>"dashboard"} 
Rendering template within layouts/application 
Rendering dashboard/index 
    Term Load (1.9ms) SELECT * FROM "date_ranges" WHERE ('2010-07-16' BETWEEN begin_date and end_date) AND (("date_ranges"."type" = 'Term')) 
    StaticData Load (1.1ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
Rendered dashboard/_news (0.1ms) 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    CACHE (0.0ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'SITE_NAME') LIMIT 1 
    StaticData Load (0.9ms) SELECT * FROM "static_data" WHERE ("static_data"."name" = E'TAG_LINE') LIMIT 1 
Completed in 67ms (View: 58, DB: 5) | 200 OK [http://localhost/dashboard] 
    SQL (0.4ms) SET client_min_messages TO 'panic' 
    SQL (0.4ms) SET client_min_messages TO 'notice' 

請注意,該請求是正是一樣,甚至下降到了時間戳。

我試過使用Ruby 1.8.7 & 1.9.1以及在Mongrel & Webrick之間交換,它總是處理每個請求兩次(或者至少它會生成兩個日誌條目)。我嘗試刪除大部分路線,看看我是否有奇怪的事情發生,但問題依然存在。我嘗試了不同機器上的不同瀏覽器(Chrome瀏覽器,Safari瀏覽器,eLinks),看看這會有所幫助,但問題依然存在。我刪除了所有的寶石,只是取代了必要的寶石,但無濟於事。

有沒有人有任何想法爲什麼Rails會導致這樣的重複請求?我正在思考我的智慧,並且抓着吸管。唯一的亮點在於,這種行爲在生產環境下不會發生,只有發展。

回答

1

問題的「答案」是移至新目錄並從Github獲取原始代碼。在將所有配置和設置在新目錄中之後,應用程序按原樣工作,沒有重複的請求。我仍然不知道爲什麼原始目錄中的代碼出了問題;我甚至不同目錄,唯一的異常值是日誌文件。

我在這裏回答我自己的問題,可能會遇到同樣問題的其他人的理智。

+0

我遇到同樣的事情之後 - 使用Rails 2.8.6的雪豹。 – 2010-12-19 10:25:43

5

檢查你的代碼,看看有沒有這樣的事情裏面:

我有同樣的問題,剛纔becase的標籤

<img src="#"> 

的,這將導致軌道,使重複請求!

config.middleware.use Rails::Rack::LogTailer 

我不記得確切使用這個原因設置

+0

是的!!!這是我的答案。讚美www! – 2015-02-03 12:30:58

+0

令人驚歎的解決方案。非常感謝.. – akbarbin 2017-03-02 01:51:26

2

我的評論在app /配置/環境/ development.rb以下行解決這個問題通過清理所有預編譯資產的問題: rake assets:clean

我試着刪除應用程序文件夾,然後從GitHub檢出他,但沒有工作。

希望得到這個幫助。 謝謝。

2

我解決這個相同:

1

這個開始發生在我使用我寫的一些自定義中間件玩過之後。 運行rake資產:clean:全部解決了。

0

這個小的解決方法解決了我的問題。請執行以下步驟:

在Rails外部庫下,搜索railties模塊。 轉到這個路徑:/lib/commands/server.rb

在這個文件中評論這條線, Rails.logger.extend(::的ActiveSupport Logger.broadcast(控制檯))

這個命令將切換關閉廣播,然後重新啓動您的Rails服務器。您將不會再看到任何重複的日誌。快樂的編碼。

5

當人們從谷歌這個問題是很重要的,他們歧義看起來像這樣的重複記錄他們之間的問題:

A 
A 
B 
B 
C 
C 

從重複記錄看起來像這樣的:

A 
B 
C 

A 
B 
C 

前很可能來自重複的LOGGING。後者可能來自重複的請求。在提問者(OP)所示的情況下,後者應該強烈考慮@ www的回答,即尋找<img src="#">或類似的自引用url標記。我花了幾個小時試圖找出爲什麼我的申請出現,使兩個重複的請求,並讀@ WWW的回答(在Double console output?或@ aelor的)之後,我發現

%link{href: "", rel: "shortcut icon"}/ 
在我的代碼

!這導致我的製作應用程序的每一頁都是雙渲染!表現糟糕,如此煩人!

+0

但爲什麼一個空白的'href'會導致其他鏈接雙渲染?或者我錯過了什麼? – 2017-12-10 22:43:41

3

這是發生在我身上的導軌安裝4.2.3 Heroku的rails_12factor寶石取決於rails_stdout_logging

相關問題