2012-11-01 55 views
4
get '/test' do 
    session[:my_session_id] = generate_random_id() 
    puts 'begin haml debug' 
    haml :"static/haml_page", :locals=>{:session_id => session[:my_session_id]} 
    end 

我在日誌中,上述頁面被不斷呼籲兩次看到:西納特拉HAML頁面調用兩次

begin haml debug 
127.0.0.1 - - [02/Nov/2012 00:00:01] "GET/HTTP/1.1" 200 4317 1.5421 
127.0.0.1 - - [02/Nov/2012 00:00:01] "GET /js/base/jquery.pjax.002902.js HTTP/1.1" 304 - 0.0234 
[2012-11-02 00:00:01] WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true 
127.0.0.1 - - [02/Nov/2012 00:00:01] "GET /css/docs.002902.css HTTP/1.1" 200 165 0.1086 
................................. 
begin haml debug 
127.0.0.1 - - [02/Nov/2012 00:00:04] "GET/HTTP/1.1" 200 4317 1.9288 

這讓我有一些問題。這是爲什麼發生?

+1

當您嘗試使用不同的瀏覽器或可能捲曲時,會發生嗎?例如'curl http:// localhost:9292' – iain

+0

不,它不! Chrome要求兩次。爲什麼? –

+0

你的路線說'get'/ test'',但你的日誌說'GET /'。你是否從真實的東西中改變了這個例子? – matt

回答

2

因爲類似的問題,我已經轉移到了Webrick的Puma服務器。 不幸的是我丟失了這個問題的例子代碼。 在任何情況下,如果你有這樣的問題,請了解什麼brouser做:

  1. 開發工具>網絡(標籤)將顯示的要求精確SOURSE如果存在
  2. 盡力縮小這個問題/錯誤通過減少代碼,即所有評論JavaScript的,改變頁面內容爲「你好沃爾德」和觀察的是問題仍然發生
  3. 分享您的代碼:)

對不起,張貼在這裏,我不知道如何發佈此作爲addit離開你的問題。

+0

我不能移動到彪馬。 –

0

這是一個黑客,但是如果你真的需要讓它只運行一次代碼: 創建一個全局布爾變量。在路由中,將所有內容都包含在布爾條件中。如果爲false,則將其設置爲true,運行您的代碼並將其重新設置爲false。