【问题标题】:Ruby in HTML like PHP像 PHP 一样的 HTML 中的 Ruby
【发布时间】:2015-01-10 02:22:30
【问题描述】:

在 HTML 中使用带有 <?php ?> 标签的 PHP 中的 Ruby 最接近的是什么?

是否可以在不需要强加网站结构的框架或不需要运行 Ruby 服务器、ecc...的情况下完成?

有办法吗?

【问题讨论】:

  • 也有类似的问题stackoverflow.com/questions/3486664/embedding-ruby-code-in-html,但它可以接受也建议使用框架的答案。 4年也没有收到新的答案..
  • 有大量的 Ruby 模板框架:ERB、HAM​​L、Slim 等等。
  • 我知道并且我已经使用过它们,但我想问是否可以像 那样使用它们,而不需要在它们后面运行一个 Ruby 框架,无论是大的还是就是这么小。
  • 是的,它们独立于框架。看看documentation for ERB。或HAML documentation
  • 我的意思是“与 PHP 标记一样直接” ...

标签: php html ruby


【解决方案1】:

机架服务器页面

用于提供动态页面的机架中间件和应用程序 简单的方法。没有控制器或模型,只有像 jsp、asp和php!

https://github.com/migrs/rack-server-pages

https://stackoverflow.com/a/32938202/988591

您可以使用“rackup”或任何支持机架的应用服务器运行它。例如,对于乘客,您只需转到 config.ru 所在的文件夹并运行“passenger start”。

【讨论】:

    【解决方案2】:

    您正在寻找 erb 文件。

    打开一个test.erb 文件并将其写下来:

    <h1><%= "hello" %></h1>
    

    然后运行它:

    ruby -rerb -e 'puts ERB.new(File.read("test.erb")).result'
    

    要在 webser 中运行 erb,您需要以某种方式包装它。

    这是一个可以完成这项工作的宝石:

    Serve - A Rapid Prototyping Framework for Web Applications

    gem install serve
    

    然后在你的脚本所在的目录运行它:

    serve
    

    标准地址是localhost:4000

    【讨论】:

    • 太棒了,但是我如何让它在每个 http 请求上运行,就像 PHP 发生的那样?有没有一种既定的方法可以做到这一点,或者在 Ruby 世界中有一个当前托管的 gem 来实现它?
    • 不,我希望它在不添加另一台服务器的情况下运行。它只需要根据 Web 请求执行,就像 Apache 中的 PHP 一样。
    • 你总是可以使用cgi...检查stackoverflow.com/questions/2245634/…
    • 是的,但为什么看起来只有 2 个人在现实世界中使用它,为什么我找不到教程,ecc.. 呢?
    • @jj_ 不确定您为什么关心“添加另一台服务器”,而您对“机架服务器页面”的回答几乎是做同样的事情。
    【解决方案3】:

    您可以根据需要在模板中塞入尽可能多的逻辑,但您仍然需要一个应用程序服务器。 PHP 有这个作为 mod_php 或通过 FastCGI 等。Ruby 提供了许多选项。考虑提供或创建一个简单的 sinatra 应用程序。

    考虑您要达到的目标。这通常是不好的做法,许多人从旧式 PHP 迁移到更现代的框架,从而避免了这个陷阱。这可能就是为什么只有 2 个人使用它而您找不到任何教程的原因。

    【讨论】:

    • 考虑我有一个已经在运行的服务器。我不想修改它。它在为 PHP 页面提供服务方面做得很好。我只是想在这个场景中添加在 HTML 中使用 Ruby 的可能性,就像 PHP 发生的那样。
    • 好吧,我希望东方兔子在 Gators 比赛期间给我带来六块腹肌,但这不会发生。如果您的 Web 服务器没有此功能,则需要添加它。考虑以下关于如何以老式 php 方式使用 erb 文件的教程:iamjamesblog.wordpress.com/2011/11/14/…
    • 您的网络服务器也是如此。我不认为你会找到很多新的解决方案,因为希望这样做的人缺少老式 php 和 asp 的支持。
    • 我正在寻找一种既定的方法来做到这一点。如果你不能回答,就不要。保留您自己的个人意见,抱歉,我没有要求这些。
    • 如果您希望您的网络服务器运行 Ruby 文件,那么您需要使用可以运行 Ruby 文件的网络服务器,或者您需要将运行 Ruby 文件的功能添加到您的网络服务器。与 PHP 完全相同。您已经看到了多个可以运行 Ruby 文件的 Web 服务器,并且已经向您展示了将 Ruby 功能添加到现有 Web 服务器的多种方法。如果您坚持不将运行 Ruby 的功能添加到您的网络服务器,那么您的网络服务器将无法运行 Ruby。同样,这与 PHP 没有什么不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2014-08-28
    • 2020-06-27
    • 2014-03-26
    • 2011-07-07
    • 1970-01-01
    相关资源
    最近更新 更多