0

我正在为 Joomla 4 组件开发一个视图。我正在尝试通过 WebAssetManager 连接样式和脚本文件。

use Joomla\CMS\Factory;

$wa = Factory::getApplication()->getDocument()->getWebAssetManager();
$wa->registerScript('com_component.corejs', 'com_component/assets/js/component.js');

if ($wa->assetExists('script', 'com_component.corejs')) {
    var_dump('Script "com_component.corejs" exists!');
}
$wa->useScript('com_component.corejs');

$wa->registerStyle('com_component.corecss', 'com_component/assets/css/component.css', [], ['data-foo' => 'some attribute'], []);
$wa->useStyle('com_component.corecss');

执行assetExists 检查,但没有文件包含在<head>文档中。json 文件 (/media/com_component/joomla.asset.json) 包含我的脚本的资产。可能是什么问题呢?


对不起我的英语不好

4

1 回答 1

0

我误解了 Joomla4 码头。任何资产的文件都必须位于路径上:media/com_component/.. 另外,在查看了内部组件后,我更正了连接。最后,一切正常:)

$ wa = $ this-> document-> getWebAssetManager ();
$ wa-> getRegistry () -> addExtensionRegistryFile ('com_component');

$ wa-> registerStyle ('component_styles', 'com_component / component.css', [], [], []);
$ wa-> useStyle ('component_styles');

$ wa-> registerScript ('component_js', 'com_component / component.js');
$ wa-> useScript ('component_js');
于 2021-09-03T14:12:27.190 回答