[英]How to include UIkit from Bower Asset inside Yii2 AppAsset
我安装了一个软件包,使我可以添加和使用uikit css和js文件。 通过将以下代码添加到main.php
它使我能够添加css文件和js文件。
\\worstinme\\uikit\\Asset::register($this);
此代码将css添加到页眉,并将js文件添加至页脚。 但是,我无法控制它们的位置,因此它与我添加的其他文件冲突。 见下文:
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/fonts/style.min.css',
'css/fonts/s9dicons.css',
'css/template.css',
];
public $js = [
'js/main.js',
];
public $depends = [
'yii\web\YiiAsset', \\ loads jquery
//'yii\bootstrap\BootstrapAsset',
];
}
在主布局头中,有以下代码:
\worstinme\uikit\Asset::register($this);
AppAsset::register($this);
如果我使用上面,它加载uikit.css
第一 前 style.min.css,s9dicons.css和template.css这是好的,但在页脚,它还加载uikit.js
第一之前jquery.js
和main.js
这是错的。 如果我放置\\worstinme\\uikit\\Asset::register($this);
在AppAsset::register($this);
,问题将会反过来。
如何以一种方式将uikit.css
文件首先加载,并将uikit.js
文件加载到jquery.js
之后但不在 main.js
之前 main.js
?
最worstinme
应用程序从vendor/bower-assets/uikit
获取uikit css和js文件。 我检查了其Asset.php
文件,发现以下代码:
namespace worstinme\uikit;
use yii\web\AssetBundle;
class Asset extends AssetBundle
{
/**
* {@inheritdoc}
*/
public $sourcePath = '@bower/uikit/dist';
/**
* {@inheritdoc}
*/
public $css = [
'css/uikit.min.css',
];
/**
* {@inheritdoc}
*/
public $js = [
'js/uikit.min.js',
];
/**
* {@inheritdoc}
*/
public $depends = [
];
}
所以我在想,可以避免使用\\worstinme\\uikit\\Asset::register($this);
只需将uikit.css
和uikit.js
从源头分别获取到解决方案中直接进入AppAsset.php
? 好像我分开时能够控制他们的位置。
我通过在资产文件夹中创建文件UikitAsset.php
解决此问题。 它包含以下代码:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class UikitAsset extends AssetBundle
{
public $sourcePath = '@bower/uikit/dist';
public $baseUrl = '@web';
public $css = [
'css/uikit.min.css',
];
public $js = [
'js/uikit.min.js',
];
}
然后,我进入AppAsset.php
并添加如下代码:
<?php
namespace frontend\assets;
use yii\web\AssetBundle;
/**
* Main frontend application asset bundle.
*/
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/fonts/style.min.css',
'css/fonts/s9dicons.css',
'css/template.css',
];
public $js = [
'js/main.js',
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
'\app\assets\UikitAsset',
];
}
这解决了问题。 将css文件和js文件放在正确的位置。 我也不必添加\\worstinme\\uikit\\Asset::register($this);
再次放入我的布局文件头以加载文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.