site.php Kirby CMS 面板冲突

site.php conflict for panel in Kirby CMS

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 它不会尝试重定向但不会加载样式。

如果尝试登录,它会产生 'Invalid route' 异常:

/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();

我是 运行 以下 php 在 apache 上:

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 管理,并让内容维护者独立进行。

这是当前版本 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;
}