SilverStripe布局和模板

时间:2016-03-20 00:31:21

标签: silverstripe

鉴于以下代码

Test.ss(在模板中)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    Templates
    $Layout
</body>
</html>

Test.ss(在布局中)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Layout</title>
</head>
<body>
    Layout
</body>
</html>

SilverStripe中的输出:

模板 布局

我的问题是SilverStripe在布局中剥离html标签吗?

1 个答案:

答案 0 :(得分:1)

不,SilverStripe不会从布局模板中删除html标记。您模板中的html将按原样打印。

因此,您的示例模板将导致以下html输出:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    Templates
    <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Layout</title>
</head>
<body>
    Layout
</body>
</html>
</body>
</html>

您可以通过查看页面来源自行查看。在Chrome中,网址为view-source:http://your-website-url

避免在html模板中使用headbodylayout标记,因为主模板会对此进行处理。

相反,您的template/layouts/test.ss文件应如下所示:

    <p>Layout</p>

使用原始template/test.ss,这会给您输出:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    Templates
    <p>Layout</p>
</body>
</html>