我在Ubuntu上安裝了apache的phusion-passenger。在我config.ru,我有以下代碼:Ruby cgi需要重新加載Apache的新值?
require 'cgi'
$tpl = CGI.new['myvar'] + '.rb'
app = proc do |env|
[200, { "Content-Type" => "text/html" }, [$tpl]]
end
run app
所以後來當我去我的瀏覽器在http://localhost/?myvar=hello
,我看到打印出來的字hello
,這是罰款。然後我將url更改爲http://localhost/?myvar=world
,但該頁仍顯示hello
。只有在我重新加載Apache後,頁面纔會顯示world
。
在使用phusion-passenger之前,我使用mod_ruby和apache。如果我沒有記錯,我不需要重新啓動Apache以獲取CGI變量來打印更新的值。
我沒有被困在需要使用CGI。我只是想能夠抓住查詢字符串參數,而不必每次都重新加載Apache。
我沒有使用rails或Sinatra,因爲我只是試圖圍繞Ruby語言包裹我的頭,以及與Apache有什麼關係。
「我不使用導軌或Sinatra的,因爲我只是想環繞Ruby語言我的頭以及什麼與apache phusion-passenger是關於。「那麼你真的會遇到困難。我們很少使用Rack,我們使用Sinatra,Padrino或Rails,並將Rack視爲大多數簡單事物的不可見層,當我們需要混淆HTTPd和控制層之間的數據流時,Rack變得有用。 Ruby不是Rack,Rack是HTTPd和Ruby控制層之間的中間件,就像Sinatra一樣。 – 2014-10-16 22:31:49