Yii2添加谷歌字体到头

时间:2015-02-23 17:47:35

标签: yii2

我想知道如何在yii2中添加链接标记/谷歌字体。

我想添加以下内容

<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>

我找到了这个documentation,但没有提及关于链接/添加谷歌字体等的任何内容

3 个答案:

答案 0 :(得分:22)

正确的答案是创建一个新的AssetBundle。

虽然可以直接将字体的HTML放入main.php文件中,但这不是Yii方式。如果您尝试以这种方式加载jQuery文件,则在将它们直接放入HTML时可能会发现奇怪的行为。

例如:直接将Bootstrap CDN的HTML标记放入main.php的头部。然后,在代码中的某处尝试使用工具提示。您将在控制台中收到错误,即工具提示不是一个功能。 - 这是因为Yii将所有模板文件放在一起的方式,当时Bootstrap不可用。

虽然简单地加载字体可能不会导致任何问题,但按照预期的方式做事情是个好主意。遵循MVC规则,正确记录您的代码,并遵循Yii最佳实践,将会有很长的路要走。一年后当你不得不重新参与一个项目时,你不仅要感谢自己,而且下一个人会很感激。我无法进入系统,看到随处可见的东西,chincy hacks,意大利面条代码,没有文档或评论。

正确的方式:

创建一个新的AssetBundle。在assets文件夹中,您可能已经拥有AppAsset.php。复制它,并将其命名为FontAsset.php

以下是我的项目中使用3种Google字体的示例。

<强> FontAsset.php

<?php
namespace app\assets;

use yii\web\AssetBundle;

class FontAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        '//fonts.googleapis.com/css?family=Open+Sans:400,700',
        '//fonts.googleapis.com/css?family=Ubuntu:400,700',
        '//fonts.googleapis.com/css?family=Oswald:400,700'
    ];
    public $cssOptions = [
        'type' => 'text/css',
    ];
}

在你的布局中,例如main.php。在您看到AppAsset::register($this)

的下方

<强> main.php

use app\assets\FontAsset;
FontAsset::register($this);

对于要加载这些字体的每个布局文件,请包含FontAsset。

AssetBundle基本上是一组CSS和/或JS文件和选项。您可以添加另一个,例如JWPlayer说名为VideoAsset,并在其中添加JWPlayer的JS / CSS文件。

重点是,您不应该直接将这些内容直接添加到布局的HTML中,因为它可能会导致问题。让AssetManager通过声明AssetBundles来处理它们。

以后可能会为你节省开支!

答案 1 :(得分:0)

最好的方法是创建资产包并添加指向包的链接。 你可以在这里找到完整的指南: http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

答案 2 :(得分:-2)

您可以将它直接放在布局的头部(文件视图/ layouts / main.php)