在执行所有其他代码之后,我想在呈现布局之前执行一些代码。我会把那个代码放在哪里?
我特别尝试在布局使用之前修改 headLink、headScript 和 inlineScript 视图助手中引用的文件。
以下是我要采取的步骤:
- 遍历那些视图助手中的文件
- 列出本地文件
- 从视图助手中删除本地文件
- 将本地文件列表作为参数引用到服务器脚本,该服务器脚本将它们组合为单个 HTTP 请求
- 将新的组合脚本引用添加到适当的视图助手
前端控制器插件似乎无法帮助我完成此任务,原因如下:
postDispatch()
在执行每个控制器操作后执行,我需要样式表/javascripts 的完整列表dispatchLoopShutdown()
在控制器动作循环之后执行,但此时布局已经呈现
正如 Rufinus 建议的那样,我通过扩展 View Helpers 解决了这个问题。 我从这个角度提出的问题以及解决方案都在这里。