【问题标题】:Empty route leeds to 404-Error - SilverStripe 3.5空路由导致 404 错误 - SilverStripe 3.5
【发布时间】:2017-04-03 22:56:33
【问题描述】:

就像SilverStripe Docs 中描述的肤浅一样,我正在尝试为我的主页设置一个自定义控制器。

我将默认主页链接更改为“custom-home”并添加了这两个路由。 第二个,其中的路径有效,并将我引导到我的控制器。第一个(空)只是将我发送到 404 错误页面。

不知道如何解决这个问题。有什么建议吗?

routes.yml

Director:
  rules:
    '': 'MyHome_Controller'
    'custom-home': 'MyHome_Controller

_config.php

RootURLController::set_default_homepage_link('custom-home');

MyHome_Controller.php

<?php
class MyHome_Controller extends Page_Controller {

  private static $allowed_actions = [];

  private static $url_handlers = [];

  public function init() {
    parent::init();
  }

  public function Link($action = null) {
    return Director::baseURL() . 'custom-home';
  }

  public function index() {
    $data = [
      'Title' => 'Hello World',
      'ClassName' => __CLASS__,
    ];

    return $this
      ->customise($data)
      ->renderWith([__CLASS__, 'Page']);
  }

}

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

    我相信空路由 (RootURLController) 的工作方式是您告诉它 CMS 中应该解析为根 URL 的页面的 URLSegment。所以我认为您需要做的是进入 CMS 并将您的 CustomHomePage 的 URLSegment 更改为“custom-home”。

    【讨论】:

    • 问题是,那不是页面。只是一个控制器
    • 这是为 SPA 准备的吗?您的所有路线都在客户端处理吗?
    • SPA = 单页应用程序?它主要是作为一个测试,对于我想用一个控制器创建一个可访问的页面的网站。没有数据库条目,不可能通过 cms 管理那个特殊页面。
    猜你喜欢
    • 1970-01-01
    • 2019-05-26
    • 2021-12-23
    • 2013-09-12
    • 2015-04-07
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-06
    相关资源
    最近更新 更多