Smarty中处理后的模板丢失格式
之前(来源于n ++):
<!DOCTYPE html>
<html lang='ru'>
<head>
之后(浏览器中的来源):
<!DOCTYPE html><html lang='ru'><head>
我不知道如何解决它。救命啊!
答案 0 :(得分:2)
正如@GordonM解释的那样,在处理浏览器时不需要“源格式化”。它可能对人类有所帮助,但这就是它。
a)使用(Firefox | Chrome | Safari)的开发者控制台,将为您提供一个交互式,结构良好的DOM视图。忽略任何可能存在或可能不存在的空白。这些是我们想要使用的工具。
b)Smarty附带一个名为trimwhitespace的outputfilter。如果应用该过滤器,则会删除所有不必要的空格和注释。这样做是为了减少必须传输到浏览器的文本的大小。您希望尽可能少地发送以获得更好的性能。我们称之为“缩小”。您可能已经在Javascript和CSS世界中听说过它。
c)在我通过Smarty 3.1
运行之后,您的示例代码会显示换行符和空格答案 1 :(得分:0)
格式化对于HTML解析器并不重要。无论是否包含空格,浏览器都将显示相同的输出。
但这真的很重要,那么你确实有一些选择。
第一个是安装PHP的Tidy扩展(http://php.net/manual/en/book.tidy.php)。然后,您可以将Smarty的输出捕获到字符串,并通过整洁的函数传递它以获取格式化的HTML字符串。
第二种是使用外部命令行实用程序,例如htmltidy。您可以将输出捕获到字符串,并使用exec()将其传递给命令行实用程序。
但老实说,我不认为所涉及的努力确实值得,就像我说的那样,HTML解析器不关心空白区域。
答案 2 :(得分:0)