Kohana 3.3 子目录控制器未在 Heroku 中加载
Kohana 3.3 subdirectory controllers not loaded in Heroku
我正在尝试使用 Kohana 3.3 和 Heroku 开发应用程序。
主要问题是当我在子目录中有控制器时,如下例
dirname\Class1
dirname\Class2
Class2 扩展了 Class1
然后我将路由设置到这个位置,它在我的本地环境中运行良好(在 Ubuntu 和 Apache 2.4 和 PHP 5.6 以及 Windows 和 XAMPP), 但是当我尝试在 Heroku 上访问此路由时无法打开路由,错误是找不到 Class1。
我还尝试更新 htaccess 并使用不同的选项更新路由文件几次,这些选项仍在我的本地环境中工作。但不可能让它在 Heroku 上运行。
这是我为此使用的路线:
Route::set('dashboard', 'dashboard(/<controller>(/<action>))')
->defaults(array(
'directory' => '/dashboard',
'controller' => 'Main',
'action' => 'index'
));
所以当我访问 example.com/dashboard 在 Heroku 上运行良好,但是当我尝试 example.com/dashboard/something 时它能够找到我试图访问的控制器(在本例中称为 Controller_Dashboard_Something)但无法找到主控制器(名为 Controller_Dashboard_Main)。这在本地再次运行良好,但在 Heroku 上我不确定我做错了什么或者它不能正确理解自动加载器....
所以,如果有人能提供帮助,我将不胜感激。
谢谢
我找到了一种可能对其他人有帮助的解决方法。这不是一个明智的解决方案,但它确实有效。
我在 Class2 文件中添加了以下行。
require "Class1"
dirname\Class1 中的控制器,必须具有 class 名称 Controller_dirname_Class1。 linux 托管的所有部分都区分大小写,这在 Heroku 中可能是个问题,因为在 windows 中这无关紧要。
我正在尝试使用 Kohana 3.3 和 Heroku 开发应用程序。
主要问题是当我在子目录中有控制器时,如下例
dirname\Class1 dirname\Class2
Class2 扩展了 Class1
然后我将路由设置到这个位置,它在我的本地环境中运行良好(在 Ubuntu 和 Apache 2.4 和 PHP 5.6 以及 Windows 和 XAMPP), 但是当我尝试在 Heroku 上访问此路由时无法打开路由,错误是找不到 Class1。
我还尝试更新 htaccess 并使用不同的选项更新路由文件几次,这些选项仍在我的本地环境中工作。但不可能让它在 Heroku 上运行。
这是我为此使用的路线:
Route::set('dashboard', 'dashboard(/<controller>(/<action>))')
->defaults(array(
'directory' => '/dashboard',
'controller' => 'Main',
'action' => 'index'
));
所以当我访问 example.com/dashboard 在 Heroku 上运行良好,但是当我尝试 example.com/dashboard/something 时它能够找到我试图访问的控制器(在本例中称为 Controller_Dashboard_Something)但无法找到主控制器(名为 Controller_Dashboard_Main)。这在本地再次运行良好,但在 Heroku 上我不确定我做错了什么或者它不能正确理解自动加载器....
所以,如果有人能提供帮助,我将不胜感激。
谢谢
我找到了一种可能对其他人有帮助的解决方法。这不是一个明智的解决方案,但它确实有效。
我在 Class2 文件中添加了以下行。
require "Class1"
dirname\Class1 中的控制器,必须具有 class 名称 Controller_dirname_Class1。 linux 托管的所有部分都区分大小写,这在 Heroku 中可能是个问题,因为在 windows 中这无关紧要。