【问题标题】:Broken SilverStripe Template破碎的 SilverStripe 模板
【发布时间】:2013-12-12 00:27:29
【问题描述】:

由于某种原因,在执行 ?flush=all 后,某个页面类型无法找到它的默认模板。我发现在将 showtemplate=1 附加到 URL 后,它没有加载它的模板文件。转储的原始模板不显示默认模板。

Pastebin:http://pastebin.com/uMLefAsP

我希望有人能在这里指出正确的方向,因为我不知道从哪里开始调试。

谢谢,简。

【问题讨论】:

  • 缺少的模板的名称是什么?它在哪个文件夹中?
  • 它在主题文件夹中,所有模板所在的位置相同。所有其他模板目前都工作得很好,只是这个我有问题的特定文件。你可以在这里看到它:工作 -> link 工作 ->link 不工作 ->link
  • 我忘了,模板的名字是:CommunityExtensionPage.ss
  • 我猜你启用了正确的主题:) ..这是一个“主”模板还是在布局或包含下?查看一些代码和文件夹树可能很有用...
  • 这是一个主模板,我已经为此声明了一个单独的页面类型。有关站点树,请参阅此link

标签: php silverstripe


【解决方案1】:

首先,我要问:实际上是否有一个名为“CommunityExtensionPage”的 PageType? PageTypes 需要与所需模板命名相同,以便自动拾取模板。

您似乎有两个模板文件“CommunityExtensionPage.ss”。一个在“templates/CommunityExtensionPage.ss”,一个在“templates/Layout/CommunityExtensionPage.ss”

查看两个文件的内容会很有用。 SilverStripe 将在“templates”目录的顶层查找“CommunityExtensionPage.ss”,然后再查看“templates/Layout”。

如果找到“templates/CommunityExtensionPage.ss”,它也会尝试查找“templates/Layout/CommunityExtensionPage.ss”并将其渲染到 $Layout 模板变量中。否则,它将使用默认的“templates/Page.ss”并请求“templates/Layout/CommunityExtensionPage.ss”

您的“templates/CommunityExtensionPage.ss”模板是否包含对 $Layout 的引用?如果没有,那么“templates/Layout/CommunityExtensionPage.ss”的内容将不会被渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2016-03-27
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多