我正在尝试使用Kohana 3.3和Heroku开发应用程序。
主要问题是我在子目录中有控制器,如下例所示
目录名\的Class1 dirname \ Class2
Class2扩展了Class1
然后我有一个设置到这个位置的路由,它在我的本地环境中运行良好(在Ubuntu上使用Apache 2.4和PHP 5.6以及使用XAMPP的Windows),但是当我尝试在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上我不确定我做错了什么或者它没有正确理解自动加载器......
所以任何可以帮助我的人都会感激不尽。
由于
答案 0 :(得分:0)
我找到了一个可能对其他人有帮助的解决方法。这不是明智的解决方案,但它确实有效。
我在Class2文件中添加了以下行。
require "Class1"
答案 1 :(得分:0)
dirname \ Class1中的控制器必须具有类名Controller_dirname_Class1。所有部分对于linux托管都是区分大小写的,这可能是Heroku中的问题,因为在Windows中这没关系。