0

zendフレームワークアプリケーションをすべてセットアップしました。ローカルホストで正常に動作し、最近、ステージングサーバーにデプロイしました。奇妙な理由で、1つの特定のコントローラーがまったく機能していません。次のエラーがスローされます。

An error occurred
Page not found
Exception information:

Message: Action "index" does not exist and was not trapped in __call() 

コントローラーファイルとビューファイルはすべてオンラインであり、スペルエラーやケースエラーはありません。他のすべてのコントローラーとそのアクションは機能していますが、この1つの特定のコントローラーは機能しておらず、そのアクションはいずれも機能していません。実際、このコントローラーを呼び出そうとすると、アクションインデックスが存在しないというエラーステーションが表示されることに気付きました。何が起きてる。


たとえば、これが私のコントローラーファイルです。

class HolidaysController extends App_Controller_Action {
  public function indexAction() {

  }
}
4

1 に答える 1

2

ひょっとして、Mac または Windows マシンで開発し、Linux サーバーにデプロイしているのでしょうか? 私の Mac の標準ファイルシステムでは大文字と小文字が区別されませんが、Linux サーバー上では大文字と小文字が区別されないため、このようにつまずくことがあります。そのため、コントローラーのファイル名を大文字にする方法を間違えると、サーバーにデプロイするまで検出されない可能性があります。

これが問題であると思われる場合は、サーバー (SSH または FTP) にログインし、そのコントローラーのファイル名の大文字と小文字を確認してください。それが問題である場合、修正が少し難しい場合があります。Mac または Windows でファイルの名前を変更した場合、ソース管理リポジトリにコミットしたり、サーバーにアップロードしたりするときに、新しい大文字が必ずしも反映されるとは限らないためです。秘訣は、最初にファイルの名前を別の名前に変更してから、必要な大文字と小文字を正確に変更して名前を元に戻すことです。

于 2012-08-27T08:16:44.823 に答える