gpt4 book ai didi

php - Yii 2中加载jQuery等核心脚本

转载 作者:可可西里 更新时间:2023-11-01 13:13:13 24 4
gpt4 key购买 nike

我一直在努力弄清楚如何在 Yii 2 中加载 jQuery 或其他 CORE 脚本。

Yii 1 中似乎是这样的:

<?php Yii::app()->clientScript->registerCoreScript("jquery"); ?>

在 Yii 2 中,$app 是 Yii 的一个属性,而不是一个方法,所以上面的自然行不通,而是将其更改为:

<?php Yii::$app->clientScript->registerCoreScript("jquery"); ?>

产生这个错误:

Getting unknown property: yii\web\Application::clientScript

我找不到任何关于加载核心脚本的 Yii 2 文档,所以我尝试了以下方法:

<?php $this->registerJsFile(Yii::$app->request->baseUrl . '/js/jquery.min.js', array('position' => $this::POS_HEAD), 'jquery'); ?>

虽然这会在头部加载 jQuery,但 Yii 在需要时也会加载 jQuery 的第二个版本,因此会导致冲突错误。

此外,我不想使用 Yii 的 jQuery 实现,我更愿意维护我自己的,因此这就是我这样做的原因。

如何加载 jQuery 和其他核心文件,而 Yii 在需要时不加载它们的副本?

最佳答案

要禁用Yii2的默认资源,您可以引用这个问题:

Yii2 disable Bootstrap Js, JQuery and CSS

无论如何,Yii2 的 Assets 管理方式不同于Yii 1.x.x。首先,您需要创建一个 AssetBundle。作为官方指南示例,在``中创建如下 Assets 包:

namespace app\assets\YourAssetBundleName;
use yii\web\AssetBundle;

class YourAssetBundleName extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'path/file.css',//or files
];
public $js=[
'path/file.js' //or files
];

//if this asset depends on other assets you may populate below array
public $depends = [
];
}

然后,将它们发表在您的观点上:

use app\assets\YourAssetBundleName;
YourAssetBundleName::register($this);

$this 指向当前 View 对象。


另一方面,如果您只需要将 JS 文件注册到 View 中,您可以使用:

$this->registerJsFile('path/to/file.js');

yii\web\View::registerJsFile()

如果您只需要将 CSS 文件注册到 View 中,您可以使用:

$this->registerCssFile('path/to/file.css');

yii\web\View::registerCssFile()

关于php - Yii 2中加载jQuery等核心脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27077576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com