2015-10-06 51 views
2

我正在寫使用Mojolicious ::精簡版我的教會一個Perl服務器,將在樹莓派2.運行我寫的軟件在我的筆記本電腦上運行Linux Mint的和已經在Raspberry Pi上進行了測試。我最近添加的是一個簡單的登錄屏幕,用於在會話中存儲身份驗證。在筆記本電腦上運行時可以正常工作,可以通過Linux和Chrome瀏覽器從Firefox和Chrome訪問,也可以從我的iPhone訪問。當在Raspberry上運行相同的代碼時,它適用於除iPhone上的Safari之外的所有內容。 Safari在Settings-> Safari-> Advanced-> Website Data中顯示一個0字節的cookie。筆記本電腦和樹莓(6.14)上都運行同一版本的Mojolicious。我用Mojolicious :: Guides :: Tutorial中的簡單示例獲得了相同的結果,該示例增加了一個計數器。當使用Safari瀏覽器iPhone瀏覽一下筆記本電腦上的計數器,計數器增量和存儲的cookie是.2kb,但看着對樹莓運行相同的代碼時,計數器從不增加和cookie是0字節。以下是示例代碼:Mojolicious上樹莓派運行發送到Safari瀏覽器空會議上iPhone

use Mojolicious::Lite; 

# Access session data in action and template 
get '/counter' => sub { 
    my $c = shift; 
    $c->session->{counter}++; 
}; 

app->start; 
__DATA__ 

@@ counter.html.ep 
Counter: <%= session 'counter' %> 

在我的筆記本電腦上,我使用Perl 5.18.2和Mojolicious 6.14運行Linux Mint。在Raspberry上,我正在運行Raspbian Wheezy,Perl 5.14.2(最新的apt-get提供默認存檔)和Mojolicious 6.14。任何幫助你可以提供這項工作將不勝感激。 謝謝! 加里

+0

你可以嘗試MOJO_DAEMON_DEBUG = 1個morbo腳本/ yourappname,看它是否是印刷正確的Set-Cookie等Safari瀏覽器。由於我沒有樹莓派,因此無法評論更多 –

回答

0

好吧,我已經找到了問題並解決它。這不是Mojolicious的不同版本,Perl的不同版本,不同的模塊或不同的庫。問題是,上個月我創建樹莓時,我沒有花時間設置ntpd。所以當上周電力耗盡時,當樹莓開始備份時,時間沒有正確復位。在嘗試了很多很多事情之後,我偶然發現今天早上報告的時間已經過去了大約2個半小時。重置時鐘使世界恢復正常。顯然,Safari瀏覽器正在查看傳入的cookie,看到它的過期日期(現在+ 1小時)過去了,並且因爲過期而沒有存儲它。無論如何,這就是解決問題所需要的,我覺得很愚蠢,因爲不及早趕上它。謝謝你的幫助。