質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

5173閲覧

CakePHPで Controller class ImagesController could not be foundのエラーが出る

takujiji

総合スコア24

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/04/16 06:40

CakePHPで処理を実行すると下記のエラーが出力されます。

php

12018-04-16 16:16:16 Error: [MissingControllerException] Controller class ImagesController could not be found. 2Exception Attributes: array ( 3 'class' => 'ImagesController', 4 'plugin' => NULL, 5) 6Request URL: /admin/images/favicon.ico 7Stack Trace: 8#0 /var/www/html/test-abc/index.php(112): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse)) 9#1 {main}

このエラーをどうすれば解消できるでしょうか?

エラーの内容としては、
「ImagesController」から呼び出している「/admin/images/favicon.ico」がありません。
ということかと思っています。

ですが「ImagesController」はありませんでした。

また、「/var/www/html/test-abc/index.php」の 112行目付近は下記の様になっており、112行目は何か処理が実行されている箇所ではなさそうでした。
(左の数値は行数で、112行目は最後の行です。)

php

1108  $Dispatcher = new Dispatcher(); 2109  $Dispatcher->dispatch( 3110   new CakeRequest(), 4111   new CakeResponse() 5112  ); 6

また、このサイトでは CakeDC/Users プラグインを利用して、ユーザ認証機能を利用しています。

/app/Config/core.php では、下記の様に設定してあります。

php

1Configure::write('Routing.prefixes', array('admin', 'member')); 2

/app/Config/routes.php では、下記の様に設定してあります。

php

1Router::connect('/admin', array('admin' => true, 'plugin' => false, 'controller' => 'news', 'action' => 'index')); 2Router::connect('/admin/topics/*', array('admin' => true, 'plugin' => false, 'controller' => 'topics', 'action' => 'index')); 3

「favicon.ico」は「/images/favicon.ico」には存在しています。
ですが、「/admin/images/favicon.ico」にはありません。

「/admin/images」フォルダを作成し、その中に「favicon.ico」ファイルを入れればエラーは消えるのだろうとは感じています。
ですが、おそらく、admin側ではないページの時は「/images/favicon.ico」を見に行っていると思いますので、admin側でも同様に「/images/favicon.ico」を見に行くように修正したいと思っています。

ルーティングの設定で、admin側のページでも、「images」や「js」フォルダなどを参照する場合は、adminなしのフォルダを見るように設定するようなことは出来ないものでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lulucom

2018/04/16 06:53 編集

CakePHP 2.xでしょうか?(追記をお願いします)
takujiji

2018/04/16 06:54

失礼しました。CakePHP2.3.6 です。
Lulucom

2018/04/16 10:41 編集

admin のレイアウトファイルも質問本文に掲載できますか?`app/View/Layouts/admin.ctp` あたりかと思うのですが。faviconを読み込んでいるあたりが怪しいのかなと推測してますので。
guest

回答1

0

ベストアンサー

admin側のページでも、「images」や「js」フォルダなどを参照する場合は、adminなしのフォルダを見るように設定するようなことは出来ないものでしょうか?

レイアウトで、HtmlHelper::meta を使うと良いのではないでしょうか。

php

1<?php echo $this->Html->meta('icon', '/images/favicon.ico'); ?>

投稿2018/04/16 07:02

編集2018/04/16 07:06
Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takujiji

2018/04/16 07:16

早速の回答ありがとうございます。回答いただいた内容を試してみます!
takujiji

2018/04/16 09:20

回答いただいた対応をしてみましたが、エラーは解消されませんでした。 ただ、実際に「/admin/images/favicon.ico」にファイルを置いてみたところ、エラーは発生しませんでしたので、HTMLに処理が渡る前に CakePHP側で何か処理をしているような気がします。
takujiji

2018/04/16 10:42

アドバイスありがとうございました。 「/app/View/Layouts/admin.ctp」は使っていませんでしたが、他のファイルを探したところ、「app/View/Layouts/login.ctp」を使っていまして、こちらに記述に不具合があることが確認できました。 「login.ctp」には、直接linkタグが記述されていましたが、「<link href="images/favicon.ico"...」のような相対パスになっていまして、これが不具合の原因になっていたようでした。 「/images/favicon.ico」にしたらエラーが出力されないようになりました。 2日ほど悩んでいたのですが、解決してかなり肩の荷が下りて晴れやかな気分です! ありがとうございました!
Lulucom

2018/04/16 10:45

そうだったんですね。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問