hkstb 2014-10-28 21:43:38 9112次浏览 6条回复 2 1 0

views\layouts\main.php

main.php 中 <?php $this->head() ?> 是调用的哪里?

觉得很赞
  • 回复于 2014-10-29 00:13 举报

    建议采用 IDE,比如PHPStorm
    需要确定这个函数的位置的话,按下 Ctrl 键,然后,鼠标放在 head() 上单击,就可以打开目标文件和并跳转到目标函数位置。
    vendor\yiisoft\yii2\web\View.php在这个文件中 137行,如果需要进一步追踪,继续 Ctrl + 单击操作即可。
    实战中帮助很大的,特别是在目前 Yii 2 的资料尚未完全完善,示例比较少的情况下。遇到问题时,很方便的追踪到源文件和位置,根据注释做分析。

  • 回复于 2014-10-29 12:27 举报

    谢谢“乌龙球”的回复,是我没表达清楚。
    我在首页html源代码中发现如下CSS文件,我想问问 $this->head() 在哪设置CSS文件?

    <link href="/assets/b67fcca3/css/bootstrap.css" rel="stylesheet">
    <link href="/css/site.css" rel="stylesheet"></head>
    
  • 回复于 2014-10-29 12:27 举报
    link href="/assets/b67fcca3/css/bootstrap.css" rel="stylesheet"
    link href="/css/site.css" rel="stylesheet"
    
  • 回复于 2014-11-06 09:11 举报

    这个要assets里面的AppAset.php里面控制的

    7 条回复
    回复于 2016-05-17 17:05 回复

    解决了吗?

    回复于 2017-01-31 10:37 回复

    当然具体项目引入的文件不一定是main.php,这可以自定义的,自己要找到对应的
    在对应控制器里的开始声明下,就可以自定义这个控制器引入的layout了。

    class SiteController extends Controller
    {

     public $layout = '@frontend/views/layouts/main-layou-----t.php';
    

    这个是layouts/main.php里的文件的部分代码,

    use frontend\assets\AppAsset;
    
    /* @var $this \yii\web\View */
    /* @var $content string */
    
    AppAsset::register($this);
    
    

    注意这里
    use frontend\assets\AppAsset;

    AppAsset::register($this);

    回复于 2017-01-31 10:38 回复

    然后去找 frontend\assets\AppAsset;

    回复于 2017-01-31 10:40 回复

    namespace frontend\assets;

    use yii\web\AssetBundle;

    /**

    • @author Qiang Xue qiang.xue@gmail.com
    • @since 2.0
      */
      class AppAsset extends AssetBundle
      {
      public $basePath = '@webroot';
      public $baseUrl = '@web';
      public $css = [
       'css/global.css',
      

      ];
      public $js = [

       'js/jquery.js',
       //'js/global.js',
      

      ];
      public $depends = [

       //'yii\web\YiiAsset',
       //'yii\bootstrap\BootstrapAsset',
      

      ];
      }

    回复于 2017-01-31 10:41 回复

    下面是页面里的html源代码截图

    QQ截图20170131104354.jpg

    回复于 2017-01-31 10:47 回复

    这个是views里的视图文件里的代码截图

    QQ截图20170131104546.jpg

    回复于 2017-01-31 10:50 回复

    这样一共就引入了两个css文件,在类AppAsset里引入了global.css,在视图index.php里又注册了css文件index.css
    至此完满解决了

    觉得很赞
  • 回复于 2014-11-07 09:28 举报

    能不能说详细点的呢。我也想知道怎么引入css和js的。坐等大手回答

    1 条回复
    回复于 2017-01-31 11:01 回复

    上面详细的说明了,O(∩_∩)O

  • 回复于 2018-04-02 19:48 举报

    222.png
    我也遇到这个问题,

    这里改的只是

    css/site.css'

    还有一个不知道是在哪里改的
    222.jpg

    1 条回复
    回复于 2019-07-31 09:08 回复

    你这个依赖于 yii\bootstrap\BootstrapAsset,所以会先引入yii\bootstrap\BootstrapAsset里面的css与js,在引入你自己的site.css,你ctrl+yii\bootstrap\BootstrapAsset能点过去,一看就知道了

您需要登录后才可以回复。登录 | 立即注册