2

我有一个 Sinatra 应用程序和一个方法

get '/page123' do
  "string1\nstring2"
end

如果我去'/page123',我只会看到string1 string2它们之间没有换行符的一串。

我如何将它们显示为

string1
string2

?

4

2 回答 2

2

由于<br>标签似乎对您不起作用,请尝试以下操作:

get '/page123' do
  content_type 'text/plain'
  "string1\nstring2"
end
于 2013-01-04T05:12:19.930 回答
0

如果您查看 HTML 的源代码,string1 string2实际上将是string1\nstring2,但正如预期的那样,\n除了它的换行符和开始一个新行的效果外,它是一个换行符并且不可见。

浏览器会掩盖(AKA 忽略)嵌入的回车符,而是只尊重像<p>and之类<br>的标签,除非文本嵌入在<pre>块内。尝试将以下内容复制到文本文件中并在浏览器中打开:

<html>
<body>
<pre>
string1
string2
</pre>
<p>string1<br>string2</p>
</body>
</html>

它们都将在不同的行上以不同的字体显示这两个词。两者都是在 HTML 中强制换行的有效方法。

了解浏览器显示 HTML 的方式对您很有帮助。他们不将其视为文本,因为它不是。HTML 是浏览器解释并使用标签作为关于如何呈现文本的说明的语言。

于 2013-01-04T05:42:06.333 回答