0

*より明確になるように編集

2つの環境にModularExtensions(HMVC)を備えたCI 2.0.3をデプロイしています。1つは開発用のWindowsで、もう1つは本番用のLinuxです。どちらの環境も、フォルダーとファイルの構造は同じです。現在、問題が発生しています。

マニュアルに従って、モジュラー拡張機能をCIに統合した後。私が最初にしたことは、CIに付属するデフォルトのWelcomeMVCをModularExtensionsHMVCに移動することでした。両方の環境が正常に移動し、ブラウザで表示できます。

しかし、他のモジュールを作成すると、Windows環境では機能しましたが、Linuxでは機能しませんでした。Windowsでは、モジュールを呼び出すと、ブラウザに期待どおりのページが表示されます。しかし、Linuxでは白い空白ページしか表示されません。404 errページでさえありません。これは、リンク切れではないことを意味します。

CIの何が問題なのか誰か教えてもらえますか?

ディレクトリ構造

/application
-/cache
-/config
-/controllers
-/core
--MY_Loader.php
--MY_Router.php
-/errors
-/helpers
-/hooks
-/language
--/english
-/libraries
-/logs
-/models
-/modules
--/csv_game_credit
---/controllers
----csv_game_credit.php
---/models
----csv_game_credit_db.php
---/views
----welcome_message.php
--/welcome
---/controllers
----welcome.php
---/views
----welcome_message.php
-/third_party
--/MX
--Base.php
--Ci.php
--Config.php
--Controller.php
--Lang.php
--Loader.php
--Modules.php
--Router.php
-/views

ウェルカムコントローラー

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->view('welcome_message');
    }
}

Csv_game_creditコントローラー

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Csv_game_credit extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Csv_game_credit_db');

        $this->load->dbutil();
        $this->load->helper('file');
    }

    public function index()
    {
        $this->load->view('welcome_message');
    }

}

これはLinuxのフォルダ権限と関係がありますか?フォルダのアクセス許可を777に変更して、更新してみます

前に感謝します

4

2 に答える 2

2

CI_Controller ではなく MX_Controller を拡張する必要があります

于 2012-10-12T19:41:05.163 に答える
0

wiredesignz のHMVC拡張機能を使用している場合は、MXフォルダーをフォルダー内に配置し、フォルダー内にapplication/third_partyandMY_Loader.phpを配置したことを確認する必要があります。MY_Router.phpapplication/core

これが確認できたらmodulesapplicationフォルダ ('application/modules`) にフォルダを作成します。

さて、このソリューションで少し注意が必要なのは、モジュールを作成したくない場合、デフォルトのコントローラーにモジュールと同じ名前を付ける必要があることです。構成で指定されたデフォルトのコントローラー名はここでは適用されません。

これは、「mymodule」というモジュールを作成する場合、次のようなフォルダー/ファイル構造を作成する必要があることを意味します。

application/modules/mymodule
- /controllers
- - mymodule.php
- /views
- - whatever.php

コントローラーでapplication/modules/mymodule/controllers/mymodule.phpは、通常どおりにコントローラーを作成するだけです。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mymodule extends CI_Controller {

  public function index()
  {
    $this->load->view('whatever');
  }

}
于 2011-12-06T21:13:00.417 に答える