有一种PHP的方式用Ruby做网页吗?

时间:2009-12-13 05:56:13

标签: php ruby

是否存在框架或其他内容,以便我可以像使用PHP一样在Ruby中开发网页。像

这样的东西
<html><head></head><body>
<?ruby
  puts '<p> Hello there!</p>'
?>
</body></html>

我在网页中使用Ruby的唯一看法是巨大的复杂框架,它与PHP的工作方式完全不同。我的意思是,确保这对3层模型都很好,但是当你只是想在网页中完成一些简单的事情(在PHP中是微不足道的)时,设置这么大的框架似乎并不合适。特别是当你真的想要用Ruby制作的1页时,其余的都是纯HTML。

4 个答案:

答案 0 :(得分:5)

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>

假设您将其放入名为example.rb的webroot中。如果您使用类似于http://example.com/example.rb?title=Hello%20world的网址进行访问,则应将标题设置为“Hello world”,并且应显示&lt; h1&gt;其中有“Hello world”。

如果您发现脚本有任何错误,请随意分叉并更新它。

答案 1 :(得分:3)

两个字:SinatraERB

(对于轻量级网站,至少)。

Sinatra是一个简单的HTTP服务器,ERB是一个模板系统,其作用类似于PHP中的模板。

答案 2 :(得分:0)

你见过Nanoc吗?这是一个非常简单的ruby编译器,它通过模板引擎输出静态页面。可能对您的需求来说太简单了,但有时候很方便。

答案 3 :(得分:0)

您可以https://github.com/migrs/rack-server-pages

该页面的说明。

汇总:

  • gem install rack-server-pages

  • 在&#34;应用程序&#34;的根文件夹中创建config.ru

    require 'rack-server-pages' run Rack::ServerPages

  • 创建public / index.erb:

    <h1>Hello rack!</h1> <p><%= Time.now %></p>

  • 执行rackup,您的Ruby支持的页面已准备就绪。

  • 它也适用于其他应用服务器,例如,对于乘客独立,您只需要转到该文件夹​​并运行passenger start