[英]Is there a PHPish way of doing webpages with Ruby?
是否有框架或其他東西,以便我可以像PHP一樣在Ruby中開發網頁。 就像是
<html><head></head><body>
<?ruby
puts '<p> Hello there!</p>'
?>
</body></html>
我在網頁中使用Ruby的唯一看法是巨大的復雜框架,它與PHP的工作原理完全不同。 我的意思是,確保這對3層模型都很好,但是當你只是想在網頁中完成一些簡單的事情(在PHP中是微不足道的)時,設置這么大的框架似乎並不合適。 特別是當你真的想要用Ruby編寫的1個頁面時,其余的都是純HTML。
PHP的默認行為是作為CGI腳本運行,這意味着Web服務器調用php-cgi <path/to/php-script>
或類似的東西,傳遞了很多環境變量。 要對Ruby執行相同操作,您需要設置腳本來處理.rb文件。 這取決於您的Web服務器,但是如果您使用的是Apache 2.2,請將其放在httpd.conf或.htaccess文件中:
Action ruby-cgi /path/to/ruby-cgi
AddHandler ruby-cgi .rb
# You might want to add this too:
DirectoryIndex index.rb index.html
您可以指定ruby可執行文件的路徑(運行which ruby
來獲取路徑),也可以指定接受文件名作為第一個參數的任何其他腳本。 如果你使用ruby可執行文件,沒有什么神奇的事情發生,你不能在不添加一些ERB編譯自己的情況下將erb插入到文件中。 但是,您可以使用我的ruby-cgi
腳本,它可以執行以下操作:
$CGI
。 有關如何使用此示例的示例,請參見下文。 這是一個關於如何使用ruby-cgi
“magic”的簡單示例腳本:
<% header "Content-Type" => "text/html" %>
<html>
<head>
<title><%= $CGI['title'] %>
</head>
<body>
<h1><%= $CGI['title'] %>
</body>
</html>
假設您將其放入webroot,名稱為example.rb
。 如果您使用類似於http://example.com/example.rb?title=Hello%20world的URL訪問它,則應將標題設置為“Hello world”,並且應顯示帶有“Hello world”的<h1> “ 在里面。
如果您發現腳本有任何錯誤,請隨意分享要點並進行更新。
你見過Nanoc嗎? 這是一個非常簡單的ruby編譯器,它通過模板引擎輸出靜態頁面。 可能對您的需求來說太簡單了,但有時會很方便。
您可以使用https://github.com/migrs/rack-server-pages
該頁面的說明。
總結:
gem install rack-server-pages
在“應用程序”的根文件夾中創建config.ru
:
require 'rack-server-pages' run Rack::ServerPages
創建public / index.erb:
<h1>Hello rack!</h1> <p><%= Time.now %></p>
執行rackup
,您的Ruby驅動頁面已准備就緒。
它也適用於其他應用程序服務器 ,例如,對於乘客獨立,您只需要轉到該文件夾並運行passenger start
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.