Php 如何将来自Bower Asset的UIkit包含在Yii2 AppAsset中
我安装了一个软件包,可以添加和使用uikit css和js文件。 通过将以下代码添加到Php 如何将来自Bower Asset的UIkit包含在Yii2 AppAsset中,php,yii2,bower,Php,Yii2,Bower,我安装了一个软件包,可以添加和使用uikit css和js文件。 通过将以下代码添加到main.php,我可以添加css文件和js文件 \worstime\uikit\Asset::register($this) 这段代码将css添加到页眉,将js文件添加到页脚。但是,我无法控制它们的位置,因此它与我添加的其他一些文件冲突。 见下文: class AppAsset extends AssetBundle { public $basePath = '@webroot'; publi
main.php
,我可以添加css文件和js文件
\worstime\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
这是错误的。如果我放置\worstime\uikit\Asset::register($this)代码>在AppAsset::register($this)之后代码>,问题将是相反的
如何将其放置在uikit.css
文件首先加载,而uikit.js
文件加载在jquery.js
之后,而不是在main.js
之前
worstime
应用程序从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 = [
];
}
<?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',
];
}
所以我在想,我是否可以避免使用\worstime\uikit\Asset::register($this)
然后直接从源代码中获取uikit.css
和uikit.js
作为解决方案进入AppAsset.php
?看起来我可以控制他们分开时的位置。我通过在资产文件夹中创建一个文件uikitaste.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 = [
];
}
<?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',
];
}
这解决了问题。将css文件和js文件放在正确的位置。我也不必添加\worstime\uikit\Asset::register($this)再次将代码>添加到我的布局文件头以加载文件