Prestashop添加CSS问题

时间:2018-11-10 15:56:00

标签: prestashop

我尝试添加外部CSS,但不是工作属性,

我使用的是prestashop版本1.7.4.3

在install()函数中,我称钩子

&& $this->registerHook('displayHeader')
&& $this->registerHook('backOfficeHeader')

在挂钩内,我注册了css和js文件

public function hookDisplayHeader($params)
{
    $this->context->controller->addCSS(($this->_path) .'views/css/style.css');
    $this->context->controller->addJS(($this->_path) .'views/js/script.js');
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');

}

public function hookBackOfficeHeader(){
    $this->context->controller->addCSS('https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css');
    $this->context->controller->addCSS(($this->_path) .'views/css/module.css');
    $this->context->controller->addJqueryUI('ui.sortable');

}

hookBackOfficeHeader()中没有问题,但是在 hookDisplayHeader()中并不想注册很棒的字体。

我尝试使用 registerStylesheet()代替addCss(),但是根本不起作用。

为什么这两个函数之间有区别?可能是因为hookDisplayHeader不接受外部文件吗?

谢谢

修改

我用 registerStylesheet() registerJavascript()

解决了
public function hookDisplayHeader($params)
{
     $this->context->controller->registerStylesheet(
        'sidemenu',
        ($this->_path) .'views/css/style.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 150]
    );
     $this->context->controller->registerJavascript(
        'sidemenu-js',
        ($this->_path) .'views/js/script.js',
        ['server' => 'remote', 'position' => 'head', 'priority' => 120]
    );

    $this->context->controller->registerStylesheet(
        'remote-font-awesom',
        'https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
        ['server' => 'remote', 'position' => 'head', 'priority' => 20]
    );
}

2 个答案:

答案 0 :(得分:1)

另外,为了添加字体很棒,最好使用requireAssets(array('font-awesome'))这样的东西

$this->context->controller->requireAssets(array('font-awesome'));

答案 1 :(得分:0)

addJS(),addCSS(),addJqueryUI()和addJqueryPlugin()方法保持向后兼容性。顺便说一句,现在是更新库并使用新方法的最佳时机。

在开发PrestaShop模块时,您可能需要为模板添加特定样式。最好的方法是使用父级FrontController类提供的registerStylesheet和registerJavascript方法。

查看链接:https://devdocs.prestashop.com/1.7/themes/getting-started/asset-management/

致谢