簡體   English   中英

有一種PHP的方式用Ruby做網頁嗎?

[英]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腳本,它可以執行以下操作:

  • 首先,它接受文件並將其解釋為ERB,這使得語法看起來更像PHP(參見下面的示例)。
  • 其次,它將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> “ 在里面。

如果您發現腳本有任何錯誤,請隨意分享要點並進行更新。

兩個詞: SinatraERB

(對於輕量級站點,至少)。

Sinatra是一個簡單的HTTP服務器,ERB是一個模板系統,其作用類似於PHP中的模板。

你見過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM