Yii2添加谷歌字体到头

con*_*322 9 yii2

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

我想添加以下内容

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

我找到了这个文档,但没有提到链接/添加谷歌字体等任何内容

Wad*_*ade 23

正确的答案是创建一个新的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',
    ];
}
Run Code Online (Sandbox Code Playgroud)

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

main.php

use app\assets\FontAsset;
FontAsset::register($this);
Run Code Online (Sandbox Code Playgroud)

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

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

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

它可能会在以后的路上拯救你!


小智 -2

可以直接放在布局的头部(文件views/layouts/main.php)