他のすべてのコードが実行された後、レイアウトがレンダリングされる直前にいくつかのコードを実行したいと考えています。そのコードをどこに配置しますか?
特に、レイアウトで使用される前に、headLink、headScript、および inlineScript ビュー ヘルパーで参照されるファイルを変更しようとしています。
実行したい手順は次のとおりです。
- これらのビュー ヘルパー内のファイルをループします。
- ローカル ファイルのリストを作成する
- ビュー ヘルパーからローカル ファイルを削除する
- 単一の HTTP 要求のためにそれらを結合するサーバー スクリプトへのパラメーターとして、ローカル ファイル リストを参照します。
- その新しい結合スクリプト参照を適切なビュー ヘルパーに追加します。
フロントコントローラープラグインがこれを達成するのに役立つとは思われません。その理由は次のとおりです。
postDispatch()
実行されるすべてのコントローラーアクションの後に実行され、スタイルシート/javascripts の完全なリストが必要ですdispatchLoopShutdown()
コントローラ アクション ループの後に実行されますが、レイアウトはこの時点で既にレンダリングされています
Rufinus が示唆したように、View Helpers を拡張することでこれを解決しました。 その角度からの私の質問と解決策はこちらです。