Php 有没有一种用Ruby制作网页的好方法?
有没有一个框架或者其他什么东西可以让我用Ruby和PHP一样开发网页。差不多Php 有没有一种用Ruby制作网页的好方法?,php,ruby,Php,Ruby,有没有一个框架或者其他什么东西可以让我用Ruby和PHP一样开发网页。差不多 <html><head></head><body> <?ruby puts '<p> Hello there!</p>' ?> </body></html> 我看到的在网页中使用Ruby的唯一一件事是巨大而复杂的框架,它与PHP的工作方式完全不同。我的意思是,对于三层模型和类似的模型来说,这都是很好的,
<html><head></head><body>
<?ruby
puts '<p> Hello there!</p>'
?>
</body></html>
我看到的在网页中使用Ruby的唯一一件事是巨大而复杂的框架,它与PHP的工作方式完全不同。我的意思是,对于三层模型和类似的模型来说,这都是很好的,但是当你只想在网页中完成一些简单的事情(在PHP中是微不足道的)时,设置这样一个大的框架似乎是不正确的。特别是当你真的只想要一个用Ruby制作的页面,而剩下的是纯HTML时。两个词:和
(至少对于轻量级站点)
Sinatra是一个简单的HTTP服务器,ERB是一个模板系统,其作用类似于PHP中的模板。您看到了吗?这是一个非常简单的ruby编译器,它通过模板引擎输出静态页面。PHP的默认行为是作为CGI脚本运行,这意味着web服务器调用
PHP CGI
或类似的东西,传递大量的环境变量。要对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可执行文件的路径(运行哪个ruby
来获取路径),也可以指定接受文件名作为第一个参数的任何其他脚本的路径。如果您使用ruby可执行文件,则不会发生任何神奇的事情,并且如果不添加一些erb编译,您就无法将erb插入到文件中。但是,您可以使用我的脚本,它可以做以下几件事:
- 首先,它接受文件并将其解释为ERB,这使语法看起来更像PHP(参见下面的示例)
- 其次,它将CGI对象初始化为全局变量
。有关如何使用此功能的示例,请参见下文$CGI
ruby cgi
“magic”的简单示例脚本:
“text/html”%>
假设您将其放入webroot,名称为example.rb
。如果您使用类似的URL访问此文件,则应将标题设置为“Hello world”,并应显示带有“Hello world”的标题
如果您发现脚本中有任何错误,请随时提出要点并进行更新。您可以使用
那一页的说明
总结:
- gem安装
机架服务器页面
- 在“应用程序”的根文件夹中创建
:config.ru
需要“机架服务器页面” 运行Rack::ServerPages
- 创建public/index.erb:
你好!
- 执行rackup,您的Ruby支持的页面已准备就绪
- 它还可与其他应用程序服务器配合使用,例如,对于passenger standalone,您只需转到该文件夹并运行
passenger start
httpd.conf
,ruby cgi.rb
,以及我在ruby 1.9.3和Apache2.2.20实验中的一个示例erb文件:ruby社区中还没有一个大型的维护项目来实现这种功能吗?
<% header "Content-Type" => "text/html" %>
<html>
<head>
<title><%= $CGI['title'] %>
</head>
<body>
<h1><%= $CGI['title'] %>
</body>
</html>