在Rack应用程序中返回由换行符分隔的字符串

时间:2013-01-04 04:59:52

标签: ruby sinatra rack

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

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

如果我转到'/page123',我会看到只有一串string1 string2没有换行符。

如何将其显示为

string1
string2

2 个答案:

答案 0 :(得分:2)

由于<br>标记似乎不适合您,请尝试以下操作:

get '/page123' do
  content_type 'text/plain'
  "string1\nstring2"
end

答案 1 :(得分:0)

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

浏览器光泽(AKA忽略)嵌入式回车,而只是尊重<p><br>等标签,除非文本嵌入<pre>块内。尝试将以下内容复制到文本文件中,然后在浏览器中打开它:

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

他们都会用不同的字体在不同的行上显示两个单词。两者都是在HTML中强制换行的有效方法。

了解浏览器显示HTML的方式对您有好处。他们不把它当作文本,因为它不是。 HTML是浏览器解释并使用标签作为有关如何呈现文本的说明的语言。