在Kirby CMS中面板的site.php冲突

时间:2015-03-28 17:11:48

标签: php kirby

Kirby CMS支持非默认文件结构。 http://getkirby.com/docs/advanced/customized-folder-setup

当我将以下内容介绍到site.php文件时:

// changing the directory
$kirby->roots->content = $kirby->roots()->index() . DS . 'vendor/client-content';

// changing the url
$kirby->urls->content = $kirby->urls()->index() . '/client/mindfulness-content';

面板重定向到panel \ panel \ install或panel \ panel \ login,这是不存在的,因为它有不必要的重定向。然而,这几乎完全是从文档中复制和粘贴的。

如果我尝试使用panel \ install或panel \ login,它不会尝试重定向,但不会加载样式。

如果尝试登录,则会产生“无效路由”异常:

/panel/app/panel.php:203 Stack trace: #0 /panel/index.php(47): Panel->launch() #1 {main} thrown in /panel/app/panel.php on line 203

如果我只使用以下内容离开site.php,那就非常高兴:

<?php 
$kirby = kirby();

我在apache上运行以下php:

PHP 5.4.16 (cli) (built: Oct 31 2014 12:59:36) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Ngnx也报道了这个问题 https://github.com/getkirby/panel/issues/287

此文件夹结构的原因:

在这种情况下,我想使用composer从另一个git仓库加载内容。这使得我的部署过程更容易从cli进行管理,并让内容维护者可以独立进行。

1 个答案:

答案 0 :(得分:0)

这是当前版本的Kirby的错误。它有一个由Kirby的创建者@bastianallgeier

提供的非常简单的修复

需要定义以下变量才能使面板生效。

$kirby->urls->index 

如果有多种域和子域可以使用添加到site.php的以下代码段,那么效果很好。

<?php

$kirby = kirby();

switch(url::host()) {
  case 'example-a.com':

     $kirby->urls->index = 'http://example-a.com';

     …

     break;
 case 'example-b.com':

     $kirby->urls->index = 'http://example-b.com';

     …

     break;
 case 'sub.example-b.com':

     $kirby->urls->index = 'http://sub.example-b.com';

     …

     break;
}