Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将来自Bower Asset的UIkit包含在Yii2 AppAsset中_Php_Yii2_Bower - Fatal编程技术网

Php 如何将来自Bower Asset的UIkit包含在Yii2 AppAsset中

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

我安装了一个软件包,可以添加和使用uikit css和js文件。 通过将以下代码添加到
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)添加到我的布局文件头以加载文件