如何在silverstripe中创建不调用默认page.ss模板的页面
我需要为主页制作一个“正在建设”的页面 我创建的所有模板都使用默认的Page.ss来构建head/nav和footer。但在构建页面中,我不想这样做 如何在新页面类型中省略Page.ss的使用?如何在silverstripe中创建不调用默认page.ss模板的页面,silverstripe,Silverstripe,我需要为主页制作一个“正在建设”的页面 我创建的所有模板都使用默认的Page.ss来构建head/nav和footer。但在构建页面中,我不想这样做 如何在新页面类型中省略Page.ss的使用? 这是我的Page。SS用作创建每个页面类型的基础。 <!doctype html> <html lang="en"> <head> <% base_tag %> <meta name="viewport" content="width
这是我的Page。SS用作创建每个页面类型
的基础。<!doctype html>
<html lang="en">
<head>
<% base_tag %>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
$MetaTags
</head>
<body>
<% include GraphicHeader %>
<% include HeadNav %>
$Layout
<% include Footer %>
</body>
$MetaTags
$Layout
您可以使用类似的维护模式模块,并将页面改为“正在构建” 这将允许您在网站上工作,同时让公众看到“正在建设”,直到您准备打开它。您的主题中有两个名为Page.ss的文件
- /主题/yourtheme/templates/Page.ss,用于站点外部结构(
和
) - /themes/yourtheme/templates/Layout/Page.ss通过
变量包含,并定义每种页面类型的内部结构$Layout
Page\u控制器
会自动尝试使用名为like-it's related Page class(如主页)的模板呈现自身,并搜索布局和基本模板。如果找不到,它会返回到名为父类等的模板,直到找到您的Page.ss
这对模板、外部布局和内部布局都有效
因此,如果您的主页类被称为HomePage
,只需在/themes/yourtheme/templates/中放置一个HomePage.ss,它由HomePage
及其子类执行
使用维护模块(请参阅Robbie Averill的答案)可能是您的一个更可靠的解决方案。感谢您的深入回答。这有助于我更好地理解正在发生的事情,并且我能够创造出我想要的东西。