recminy 2015-03-30 20:05:35 3069次浏览 2条回复 0 0 0

在layout/main.php中看到这样一行代码 $this->head;

追踪代码看到:

protected function renderHeadHtml()
    {
        $lines = [];
        if (!empty($this->metaTags)) {
            $lines[] = implode("\n", $this->metaTags);
        }

        if (!empty($this->linkTags)) {
            $lines[] = implode("\n", $this->linkTags);
        }
        if (!empty($this->cssFiles)) {
            $lines[] = implode("\n", $this->cssFiles);
        }
        if (!empty($this->css)) {
            $lines[] = implode("\n", $this->css);
        }
        if (!empty($this->jsFiles[self::POS_HEAD])) {
            $lines[] = implode("\n", $this->jsFiles[self::POS_HEAD]);
        }
        if (!empty($this->js[self::POS_HEAD])) {
            $lines[] = Html::script(implode("\n", $this->js[self::POS_HEAD]), ['type' => 'text/javascript']);
        }

        return empty($lines) ? '' : implode("\n", $lines);
    }

请问方法中的$this->css,$this->js,$this->jsFile在什么时候加载的?

  • 回复于 2015-03-31 07:58 举报

    $this->endBody()时生成完毕,
    $this->endPage()时注入到页面

  • 回复于 2015-03-31 08:06 举报

    生成之前的任一时间都可以加载生成,方式包括直接注入或包注入。
    上面的那个方法正是在endPage()时执行,将已注的相关信息写入到页面头部的过程

您需要登录后才可以回复。登录 | 立即注册