首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在head标记中注册jQuery资产?

如何在head标记中注册jQuery资产?
EN

Stack Overflow用户
提问于 2016-07-25 11:10:39
回答 2查看 2.9K关注 0票数 2

我对Yii2资产包并不熟悉。Yii2资产包在页面顶部注册css文件,在页面底部注册js文件。但是,如何将那些js文件也包含在页面的顶部呢?

代码语言:javascript
复制
class AppAsset extends \yii\web\AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

我只是需要所有的js和css文件注册在页面的顶部。使用AppAsset,它是可定位的吗?

编辑

默认注册脚本

代码语言:javascript
复制
<head>
....
<link href="/assets/4850c11c/css/bootstrap.css" rel="stylesheet">
....
</head>
<body>
.....
<script src="/assets/76016e7c/jquery.js"></script>
.....
</body>

我只是需要

代码语言:javascript
复制
<head>
....
<link href="/assets/4850c11c/css/bootstrap.css" rel="stylesheet">
<script src="/assets/76016e7c/jquery.js"></script>
....
</head>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-25 11:44:53

只需向bundle类添加一行即可。

代码语言:javascript
复制
public $jsOptions = ['position' => \yii\web\View::POS_HEAD];

您的代码将如下所示:

代码语言:javascript
复制
class AppAsset extends \yii\web\AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $jsOptions = ['position' => \yii\web\View::POS_HEAD];

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

    public $js = [
        'somefile.js'
    ];
}

或者,您也可以使用配置数组而不是字符串(警告:第一个元素必须是文件名)在header部分指定您想要的文件。

代码语言:javascript
复制
class AppAsset extends \yii\web\AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';

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

    public $js = [
        'this_file_will_be_at_end.js', // The default position
        ['but_this_will_be_at_header.js', 'position' => \yii\web\View::POS_HEAD],
        ['and_this_too.js', 'position' => \yii\web\View::POS_HEAD]
    ];
}
票数 11
EN

Stack Overflow用户

发布于 2016-07-25 11:19:36

若要在页面的head部分中包含JavaScript文件(默认情况下,JavaScript文件包含在正文部分的末尾),请使用以下选项:

代码语言:javascript
复制
 public $jsOptions = ['position' => \yii\web\View::POS_HEAD];

或者直接看到

代码语言:javascript
复制
 $this->registerJs('js/myjsfile.js', $this::POS_HEAD);

你可以看到http://www.yiiframework.com/doc-2.0/guide-output-client-scripts.html

http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38566194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档