无法使用assets / registerCss函数注册css / js

时间:2016-12-28 11:08:02

标签: yii2 assetbundle

我创建了一个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函数,但没有成功。

任何人请告诉我我的代码缺少的地方。

3 个答案:

答案 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资产可以工作。

相关问题