遇到一些障碍,我找不到任何支持文档。我的用例相当简单。 Application
模块有javascript应该进入头部,而我的其他模块之一Foo
也有脚本应该进入头部。我假设这个Assetic模块可以解决这个问题。这是我推断的内容:
应用配置
/**
* Assetic
*/
'assetic_configuration' => array(
'buildOnRequest' => true,
'cacheEnabled' => false,
'webPath' => realpath('public/assets'),
'basePath' => 'assets',
'default' => array(
'assets' => array(
'@base_css',
'@head_js',
),
'options' => array(
'mixin' => true,
),
),
'modules' => array(
'application' => array(
# module root path for yout css and js files
'root_path' => __DIR__ . '/../assets',
# collection of assets
'collections' => array(
'base_css' => array(
'assets' => array(
'css/*.css',
),
'filters' => array(),
'options' => array(),
),
'head_js' => array(
'assets' => array(
'js/*.js',
),
'filters' => array(),
),
'base_images' => array(
'assets'=> array(
'images/*.png',
),
'options' => array(
'move_raw' => true,
)
),
),
),
),
),
然后在我的Foo模块中......
Foo模块配置
/**
* Assetic
*/
'assetic_configuration' => array(
'default' => array(
'assets' => array(
'@base_css',
'@head_js',
),
'options' => array(
'mixin' => true,
),
),
'modules' => array(
'foo' => array(
# module root path for yout css and js files
'root_path' => __DIR__ . '/../assets',
# collection of assets
'collections' => array(
'base_css' => array(
'assets' => array(
'css/*.css'
),
'filters' => array(),
'options' => array(),
),
'head_js' => array(
'assets' => array(
'js/*.js' // relative to 'root_path'
),
'filters' => array(),
'options' => array(),
),
'base_images' => array(
'assets'=> array(
'images/*.png'
),
'options' => array(
'move_raw' => true,
)
),
),
),
),
),
不幸的是,有了这个配置,只有Foo模块的javascript进入head_js.js。我感觉像是米尔顿的模因,“我被告知会有资产合并!” :)
感谢您提供的任何帮助。
谢谢!
答案 0 :(得分:5)
好的 - 我已经弄清楚了。希望有一天这会帮助别人。我上面提到的配置密钥并不准确 - 但是 - 当考虑到秘密的未记录的功能时,它们没有正确制作;不得不破解消息来源以了解包括资产包中的“head”这个词实际上是在脑袋中自动加载。它最终是一个很好的功能,但是当你不了解它时,真的是一个令人头疼的问题。