1

我想在 sinatra 中使用这种风格:

get("/") {
  <html>
    <body>
      <h1>Hello, world!</h1>
      Say <a href="hello-scalate">hello to Scalate</a>.
    </body>
  </html>
}

http://www.scalatra.org/2.2/getting-started/first-project.html#toc_64

但我不清楚这是否可以在 get 函数的主体中使用不带引号的文字 HTML 字符串。

4

1 回答 1

0

Ruby 和 Sinatra 不支持这种确切的格式,因为它会是语法错误。你必须以某种方式引用包含标记的字符串,否则 Ruby 会抱怨。但是,您只需添加一点 Ruby 代码就可以做到这一点:

require 'sinatra'

get("/") {
  %{
    <html>
      <body>
        <h1>Hello, world!</h1>
        Say <a href="hello-scalate">hello to Scalate</a>.
      </body>
    </html>
  }
}

你也可以这样做:

require 'sinatra'

get("/") {
  return <<EOT
<html>
  <body>
    <h1>Hello, world!</h1>
    Say <a href="hello-scalate">hello to Scalate</a>.
  </body>
</html>
EOT
}

必须以一种或另一种方式将内容“字符串化”。

这是我非常喜欢 Sinatra 的地方之一。它是用于 Web 服务的出色原型设计工具。处理程序返回的任何内容都会发送到浏览器。如果它不是 HTML,那么您可以使用该content_type方法轻松指定它的类型和内容的 MIME 类型,然后返回该内容。

于 2013-06-17T21:33:10.217 回答