我创建了一个testasset.php,如下所示:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class TestAsset extends AssetBundle {
/*public $basePath = '@webroot';
public $baseUrl = '@web'; */
public $sourcePath = '@app/assets';
public $css = [
'/css/test.css',
];
public $js = [];
public $depends = [
/* 'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset', */
];
}
在控制器中,我只是渲染注册资产上方的视图文件。
观点:
<?php
use app\assets\TestAsset;
TestAsset::register($this);
$this->beginPage(); ?>
<html>
<head>
<title>Register JS and CSS</title> <?php
//Yii::$app->view->registerCssFile('/css/style.css');?>
<!-- <link rel="stylesheet" href="/css/test.css" type="text/css" /> -->
</head>
<body>
<div id="page">
<div id="logo">
<h1><a href="/" id="logoLink">Register JS and CSS Test</a></h1>
</div>
<div id="nav">
<ul>
<li><a href="#">!</a></li>
<li><a href="#">@</a></li>
<li><a href="#">#</a></li>
</ul>
</div>
<div id="content">
<h2>Test</h2>
<p> XYZ...!!! </p>
<p> ABC...!!! </p>
</div>
<div id="footer">
<p> Webpage made by <a href="/" target="_blank">XYZ</a> </p>
</div>
</div>
</body>
</html>
但是我的test.css文件没有注册。 我曾尝试过使用basepath和baseurl以及registerCss Yii2函数,但没有成功。
任何人请告诉我我的代码缺少的地方。
答案 0 :(得分:2)
您需要添加
<?php $this->head() ?>
最好介于<head>
和</head>
之间,以便呈现header
资产文件。
答案 1 :(得分:1)
只需在视图文件中添加
即可<?php
$this->registerCssFile('PATH_TO_FILE');
?>
答案 2 :(得分:0)
我的一个高级应用程序模板项目遇到了同样的问题。
我将layout / main.php文件与Yii2 advanced application template上的文件进行了比较,发现文件末尾缺少$this->endPage()
。
它被错误地删除了,如果没有它,没有js,ccs资产可以工作。