2017-04-03 2 views
1

SilverStripe Docsの表記と同じように、自分のホームページのカスタムコントローラを設定しようとしています。空のルートが404エラーに飛ぶ - SilverStripe 3.5

私はデフォルトのホームページリンクを「custom-home」に変更し、それらの2つのルートを追加しました。 2番目のパスは動作し、私のコントローラに移動します。最初の(空の)人は404エラーページに私を送ります。

これを修正する方法を理解できませんでした。助言がありますか?

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

_config.php

routes.yml

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

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']); 
    } 

} 

答えて

0

私は、空のルート(RootURLController)が動作する方法は、あなたがしているということであると信じてルートURLに解決されるCMSのページのURLSegmentを伝えます。だから私はあなたがする必要があるのはCMSに入り、CustomHomePageのURLSegmentを 'custom-home'に変更することだと思います。

+0

問題は、ページがありません。コントローラーだけ –

+0

これはSPA用ですか?すべてのルートがクライアント側で処理されていますか? – UncleCheese

+0

SPA =シングルページアプリケーションですか?これは主に、コントローラーだけでアクセシブルなページを作成したいウェブサイトのテストとしての意味です。データベース項目がないため、CMS上でその特別なページを管理することはできません。 –

関連する問題