さまざまなコントローラーに対して独自のレイアウトオーバーライドを持つプラグインがインストールされています。ただし、パスを変更するメカニズムを理解するのに苦労しています。
レイアウトを使用するように指示した場合、プラグインコントローラーで
$this->layout = 'default_dashboard';
app/Views/Layout にあり、app/webroot/default_images の画像を参照します。
これを行うと、すべての相対リンクは default_images に対して正常に機能しますが、プラグイン テンプレートのオーバーライドの一部を他のアクションに使用したいと考えています。
ただし、default_dashboard.ctp で使用されるロゴなど、いくつかの画像を含めるように default.cpt ファイルを変更するとします。同じ画像の場所にマップすることはできません。たとえば、default.ctp では次のようになります。
echo $this->Html->image('default_images/logo.png',array('alt' =>
'Logo','width'=>'284','height'=>'82'));
/img/default_images/logo.png へのパスを生成します。プラグインは /img の場所を使用するように構成されていますが、この場合は /default_images にリダイレクトしたいと考えています。これを ../default_images/logo.png にすることもできますが、あまりきれいではありません。
さらに、同様の問題を抱えているjsとcssがあります。継承されたプラグイン テンプレートで動作するように、サイト全体の default.ctp を使用するメカニズムを説明してもらえますか?
Html ヘルパーを使用せずにテンプレートにリンクをハード コーディングすると、ルーティングが原因でブラウザーの相対パスが混乱することがわかります。たとえば、最初のものは指定されたルートで機能しますが、2 番目のものは機能しません。
<img src="/default_images/logo.png" alt="works" width='284' height='82'>
<img src="default_images/logo.png" alt="lost" width='284' height='82'>
プラグイン レイアウトと非プラグイン レイアウトのすべてが /default_images への正しいパスを見つけられるようにする最善の方法は何ですか?