Yii很棒,但资产对我来说总是很奇怪(自1.1版本以来)。
我目前正在使用Yii2和高级应用模板。我想在前端main
布局视图中注册一些css / js文件(尝试使用HTML5UP Prologue Template)。
怎么做?我将css
个文件放在frontend/web/css
目录下,js
放在frontend/web/js
下,将布局图片放在frontend/web/images
目录下。
在frontend/assets
目录下,我创建了PrologueAssets
类,如下所示:
namespace frontend\assets;
use yii\web\AssetBundle;
class PrologueAssets extends AssetBundle {
public $sourcePath = "@webroot";
public $css = [
'css/skel.css',
'css/style.css',
'css/style-wide.css',
];
public $js = [
'js/jquery.min.js',
'js/jquery.scrolly.min.js',
'js/jquery.scrollzer.min.js',
'js/skel.min.js',
'js/skel-layers.min.js',
'js/init.js',
];
static function register($view) {
die(self::sourcePath);
parent::register($view);
}
}
不幸的是,这些文件都没有注册。怎么做?
小问题 - 如果仅检测到IE8或IE9,如何注册css文件?
答案 0 :(得分:5)
你应该试试:
class PrologueAssets extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
...
];
public $js = [
...
];
}
http://www.yiiframework.com/doc-2.0/guide-structure-assets.html
PS:资产管理目前正在重构: https://github.com/yiisoft/yii2/pull/4855
答案 1 :(得分:1)
我想添加两个文件,一个在frontend/web/css/custom.css
和frontend/web/js/custom.js
下面我刚刚找到frontend / assets / AppAsset.php并直接添加它们,并为我加载的每个页面加载了两个文件。
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
'css/custom.css',
];
public $js = [
'js/custom.js',
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
答案 2 :(得分:0)
这是你为ie 8注册js或css的方式
namespace app\assets;
use yii\web\AssetBundle;
class IE8Assets extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css=[
'css/ie8.css'
];
public $cssOptions = ['condition' => 'lte IE9'];
public $js =[
'js/jquery-1.11.3.min.js',
'js/jquery-migrate-1.2.1.min.js',
];
public $jsOptions = ['condition' => 'lte IE9'];
}