我最近开发了一个模块,该模块需要将某些JS和CSS文件插入<head>
每个页面的中。最初,我使用:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
但是,我注意到,启用缓存后,网站会加载的缓存版本/cache
和的非缓存版本/modules/mod_x/js/
,从而导致JS错误。
当我将其更改为:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
该脚本仅从缓存加载一次,从而解决了这些错误。
我在文档中读到,该addScript
方法比该JHtml:script
方法更“低级” ,但不仅如此...
当然,您还需要手动编写某些步骤[JHtml:script为您完成],这些步骤将使用上面的[JHtml:script方法] [如果使用addScript]自动完成。
...没有进一步的细节。
那有什么区别呢?我假设JHtml:script
最终会addScript
在某个时刻调用文档对象,但是是否首先采取了其他中间步骤?