是否存在框架或其他内容,以便我可以像使用PHP一样在Ruby中开发网页。像
这样的东西<html><head></head><body>
<?ruby
puts '<p> Hello there!</p>'
?>
</body></html>
我在网页中使用Ruby的唯一看法是巨大的复杂框架,它与PHP的工作方式完全不同。我的意思是,确保这对3层模型都很好,但是当你只是想在网页中完成一些简单的事情(在PHP中是微不足道的)时,设置这么大的框架似乎并不合适。特别是当你真的想要用Ruby制作的1页时,其余的都是纯HTML。
答案 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
脚本,它可以执行以下操作:
$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)
答案 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
。