gpt4 book ai didi

php - 我如何在 Yii2 中管理 Assets ?

转载 作者:IT王子 更新时间:2023-10-28 23:52:50 25 4
gpt4 key购买 nike

例如,我创建了一个新页面,我想使用例如,backbone.js、自定义 css 文件和一些图像集合。在 Yii2 中我应该在哪里声明所有这些东西?我找到了 AppAsset.php 模块,但这仅适用于 css/js 文件,当我的 css/js 文件和路径在那里声明时,我没有注意到任何变化:

class AppAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
'js/jquery.mobile-1.4.2.min.css',
];
public $js = [
'js/jsquery-2.1.0.min.js',
'js/jquery.mobile-1.4.2.min.js',
'js/script.js',
];

public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}

我做错了什么?

最佳答案

我花了一段时间才弄明白,但下面是 relevant part Yii2的源码

if ($this->sourcePath !== null && !isset($this->basePath, $this->baseUrl)) {
list ($this->basePath, $this->baseUrl) = $am->publish($this->sourcePath, $this->publishOptions);
}

所以 Yii2 只有在设置了 $sourcePath 并且没有设置 $basePath$baseUrl 的情况下才会发布资源(!)。后者把我绊倒了,看起来你也一样。

所以我有这个 AppAsset,它正式发布

use yii\web\AssetBundle;


class AppAsset extends AssetBundle
{
public $sourcePath = '@app/assets/app';

public $css = [
'css/openbook.css',
'fontello/css/fontello.css',
'fontello/css/animation.css'
];
public $js = [
'js/plug.openbook.js',
'js/plug.interpret.js',
'js/plug.drop.message.js'
];
public $depends = [
// 'yii\web\YiiAsset',
// 'yii\bootstrap\BootstrapAsset',
];
}

当然,我在主布局中

use frontend\assets\AppAsset;
...
AppAsset::register($this);

关于php - 我如何在 Yii2 中管理 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25686904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com