是否有框架或其他东西,以便我可以像PHP一样在Ruby中开发网页.就像是
<html><head></head><body>
<?ruby
puts '<p> Hello there!</p>'
?>
</body></html>
Run Code Online (Sandbox Code Playgroud)
我在网页中使用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
Run Code Online (Sandbox Code Playgroud)
您可以指定ruby可执行文件的路径(运行which ruby以获取路径),也可以指定接受文件名作为第一个参数的任何其他脚本.如果你使用ruby可执行文件,没有什么神奇的事情发生,你不能在不添加一些ERB编译自己的情况下将erb插入到文件中.但是,您可以使用我的ruby-cgi脚本,它可以执行以下操作:
$CGI.有关如何使用此示例的示例,请参见下文.这是一个关于如何使用ruby-cgi"魔法" 的简单示例脚本:
<% header "Content-Type" => "text/html" %>
<html>
<head>
<title><%= $CGI['title'] %>
</head>
<body>
<h1><%= $CGI['title'] %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
假设您将此名称放入webroot example.rb.如果您使用类似于http://example.com/example.rb?title=Hello%20world的URL访问它,则应将标题设置为"Hello world",并且应显示带有"Hello world"的<h1> " 在里面.
如果您发现脚本有任何错误,请随意分享要点并进行更新.