Answers:
最好的方法是使用媒体文件夹。因此,您首先需要media
在模块文件夹中创建一个文件夹。
在媒体文件夹中,创建2个子文件夹,css
然后单击js
。这不是必需的,但最好将它们分开。
然后将以下内容添加到您的XML文件中:
<media folder="media" destination="mod_EXAMPLE">
<folder>css</folder>
<folder>js</folder>
</media>
更改mod_EXAMPLE
为您的模块。
安装后,媒体文件夹将自动移动,并且您将得到以下内容:
JOOMLA_ROOT/media/mod_EXAMPLE/js
和
JOOMLA_ROOT/media/mod_EXAMPLE/css
我知道到目前为止,我一直在指模块,但同样也适用于组件。
要调用该文件,可以将以下代码添加到扩展的default.php文件中:
JHtml::_('stylesheet', JUri::root() . 'media/mod_EXAMPLE/css/style.css'); // For CSS files
JHtml::_('script', JUri::root() . 'media/mod_EXAMPLE/js/script.js'); // For JS files
希望这可以帮助
我假设您的扩展程序是一个组件。最好的方法是media
在admin
和site
目录旁边创建一个目录。然后把js
,css
和img
里面像这样单独的目录中的文件:
index.html
YOUR_COMPONENT_NAME.xml
[+] admin
[+] site
[-] media
[-] js
main.js
index.html
[+] css
[+] img
请注意,任何文件夹都应有一个空index.html
文件。
在您的XML清单(YOUR_COMPONENT_NAME.xml)中,您可以这样声明media
文件:
<media destination="com_YOUR_COMPONENT_NAME" folder="media">
<filename>index.html</filename>
<folder>css</folder>
<folder>js</folder>
<folder>img</folder>
</media>
编辑默认视图(default.php)并添加以下行以将文件包含在Joomla中!头:
$document = JFactory::getDocument();
$document->addStyleSheet(JUri::base() . 'media/com_YOUR_COMPONENT_NAME/css/main.css');
$document->addScript(JUri::base() . 'media/com_YOUR_COMPONENT_NAME/js/main.js');
$test_image_url = JUri::base() . 'media/com_YOUR_COMPONENT_NAME/img/test.jpg';
JHtml::script()
和JHtml::stylesheet()
改变:docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2
If you wish to just include a straight file path, in a template for example, then you are better using JDocument. However if you wish to take into account whether debug is enabled to include a compressed script or take advantage of template overridable scripts and stylesheets then using JHtml is generally better. It is recommended all 3rd Party Developers use JHtml to allow template overrides of their CSS and javascript for template designers.
J!站点开发人员可以使用JDocument,而第三方公共扩展名开发人员可以使用JHtml。
JHtml::stylesheet("mod_EXAMPLE/style.css", array(), true)
可以加载media/mod_EXAMPLE/css/style.css
(注意附加css/
部分)和JHtml::script("mod_EXAMPLE/script.js", false, true)
加载media/mod_EXAMPLE/js/script.js
(注意附加js/
部分)。