我想知道如何在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来处理它们.
它可能会在以后的路上拯救你!
| 归档时间: |
|
| 查看次数: |
5793 次 |
| 最近记录: |