使用.html.twig和.twig有什么区别?是否有某种标准,是框架特定的,还是仅仅是用户偏好?
答案 0 :(得分:4)
在Symfony下,您可以自动提供不同的格式。因此,您可以创建test.json.twig
,test.xml.twig
等文件。如果您在控制器中定义了所有扩展,则可以在一个操作下提供所有格式。
例如:
/**
* @Route("/hello/{name}.{_format}", defaults={"_format"="html"}, name="_demo_hello")
* @Template()
*/
public function helloAction($name) {
return array('name' => $name);
}
像这样的东西。因此,您可以使用路径中的格式来定义响应格式。
答案 1 :(得分:3)
根据path
"这只是一种组织策略,用于需要将相同资源呈现为HTML(index.html.twig),XML(index.xml.twig)或任何其他格式的情况。&#34 ;
所以听起来这是用户偏好,但是遵循任何一种方式都是一个很好的标准。
答案 2 :(得分:3)
唯一的区别是自动转义的行为。
想象一下,您有一个var
变量,其中包含:<div>I'm happy</div>
。
在index.twig
,{{ var }}
将呈现<div>I'm happy</div>
。
在index.html.twig
上,{{ var }}
将呈现<div>I'm happy<div>
在index.js.twig
上,{{ var }}
将呈现\x3Cdiv\x3EI\x27m\x20happy\x3Cdiv\x3E
等等。
始终使用正确的扩展名以避免任何XSS漏洞,并始终明智地使用|raw
,因为它与此扩展的隐式保护重叠。