遇到了一些障礙,我無法找到任何支持文檔。我的用例非常簡單。 Application
模塊具有應該進入頭部的javascript,並且我的其他模塊之一Foo
也具有應該進入頭部的腳本。我認爲這個資產模塊可以解決這個問題。這是我推斷:在多個模塊中將HeadScript javascript與widmogrod/zf2-assetic-module和js結合使用
應用程序配置
/**
* 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,
)
),
),
),
),
),
,然後在我的富模塊...
美孚模塊配置
/**
* 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。我感覺就像米爾頓那樣迷戀,「我被告知會有資產結合!」 :)
任何幫助,你可以提供,表示讚賞。
謝謝!
注意,如果我垃圾模塊 - > foo-> head_js,那麼應用程序中的head_js會*進入。 – Saeven
因此,模塊配置文件發生的一件事是它們全部合併在一起,一些密鑰(特別是不與一個DiC關聯的密鑰)被覆蓋。這使您可以覆蓋默認配置。有可能這就是這裏發生的事情,也因爲'應用程序'和'富'是不同的鍵,我不明白他們爲什麼會相互覆蓋。嘗試從控制器'$ this-> getServiceLocator() - > get('Config')'執行配置轉儲,並查看是否所有鍵都顯示爲他們應該(合併)Assetic的配置。 – Adrian
嘿,謝謝你刺傷它阿德里安。似乎不是配置問題。我試圖避免開放源代碼來嘗試理解它。 – Saeven