在 Yii 2 中加载 jQuery 等核心脚本

2024-01-11

我一直很难弄清楚如何加载jQuery或其他核心脚本Yii 2.

In 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'); ?>

虽然这会在 head 中加载 jQuery,但 Yii 也会加载 jQuery 的第二个版本需要的时候从而导致冲突错误。

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

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


为了禁用Yii2的默认资产你可以参考这个问题:

Yii2 禁用 Bootstrap Js、JQuery 和 CSS https://stackoverflow.com/questions/26734385/yii2-disable-bootstrap-js-jquery-and-css/26734892#26734892

Anyway, Yii2的资产管理方式不同于Yii 1.x.x。首先你需要创建一个AssetBundle。作为官方指南示例,在``中创建如下所示的资源包:

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);

Which $this指当前视图对象。


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

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

yii\web\View::registerJsFile() http://www.yiiframework.com/doc-2.0/yii-web-view.html#registerJsFile()-detail

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

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

yii\web\View::registerCssFile() http://www.yiiframework.com/doc-2.0/yii-web-view.html#registerCssFile()-detail

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Yii 2 中加载 jQuery 等核心脚本 的相关文章

  • jQuery:在整个文档上触发按键功能,但不在输入和文本区域内触发按键功能?

    我有这个 document keypress function e if e keyCode 119 w doSomething Wo 在我的文档上按 w 时doSomething 函数触发 当我当前正在输入 焦点 时 如何防止它触发inp
  • 每 x 秒重复一次代码,但如果 [在此处插入检查] 则不重复

    这是后续这个问题 https stackoverflow com questions 13304471 javascript get code to run every minute 我在那里找到了如何使代码每 x 秒重复一次 是否有可能举
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • 等待动态加载脚本

    在我的页面正文中 我需要插入以下代码作为 AJAX 调用的结果 p Loading jQuery p p Using jQuery p 我不能使用 load 由于文档已经加载 因此该事件不会触发 这安全吗 如果没有 我如何确保在执行自定义生
  • PHP header() 和 jquery mobile

    我想使用 php header Location newpage php 进行重定向 我没有收到错误 但 Jquery mobile 似乎无法加载目标页面 并且地址栏仍保留旧地址 请问您有什么建议吗 Thanks 尝试添加data ajax
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • CSV 从 UTF8 到 ISO-8859-1

    我正在尝试修改我的 CSV 导出 但它不会将我的 CSV 从 UTF 8 转换 保存为 ISO 8859 1 请问我做错了什么吗 实际上自从修改了这个之后 我得到了一个空的 CSV 文件 php 7 0 x function my Gene
  • jQuery 自动完成 - xml 跨站点请求

    我的自动完成功能的 XML 提要位于另一台服务器上 是否有客户端 javascript 方法来获取此 XML 文档 我知道我可以使用 php jsp 等创建代理 但我需要在所有客户端完成此操作 这就是我现在调用该文件的方式 该文件仅在同一域
  • 我可以显示我在 PHP 中设置的所有 cookie 吗?

    我正在尝试诊断 cookie 中的错误 但 cookie 的名称不是应有的名称 PHP 有没有办法打印我的域设置的所有 cookie 你有没有尝试过 print r COOKIE
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 如何使用JQuery调用SWAL中成功的函数?

    第二个功能不起作用 它没有收到从第一个函数传递的 id 这是我的 JQuery 代码 swal title Are you sure text You will not be able to recover this record type
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • JavaScript 点击事件在 Android 4.0.4 默认浏览器上的 Samsung Galaxy SIII 上不起作用

    我在 Android 4 0 4 上使用 Samsung Galaxy SIII 的默认浏览器时遇到了最奇怪的问题 对于以下页面 单击链接将不会触发 JavaScript 处理程序 从其中一个 div 的内容中删除单个 a 字母使它们再次工
  • 只返回 $.ajax 传递的 JSON 数据的前 20 个结果?

    我有以下简单的 jquery 片段 document ready function ajax url myjson json dataType json success function json each json function al
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • Chrome 上的 contenteditable 中未显示编辑光标

    当您打开此页面时 请参阅现场演示 http jsfiddle net gs3p1a6r 3 show 与 Chrome span span CSS myspan border 0 outline 0 JS myspan focus the
  • PHP 中的 Zip 流

    我有一个 PHP 脚本 可以动态创建 zip 文件并强制浏览器下载该 zip 文件 问题是 我可以直接将zip文件写入连接到用户浏览器的输出流 而不是先将其保存为服务器上的真实文件 然后发送文件吗 提前致谢 如果您的 Web 服务器运行的是

随机推荐

  • 如何对过滤后的 html 表求和?

    我有一个 HTML 表 我可以使用 jquery 过滤它 在表格的底部 我想要一个 总计 行 它将显示的所有值相加 总计 行中显示的总和应该是显示的所有行的总和 即不考虑隐藏行 我尝试添加一个条件 例如使求和取决于行的显示样式 但这没有成功
  • 为什么当 args 是序列时 subprocess.Popen 不起作用?

    当 args 参数作为序列给出时 我遇到了 subprocess Popen 问题 例如 import subprocess maildir home support Maildir 这有效 它打印 home support Maildir
  • 使用“optparse”模拟 Python 脚本的命令行参数?

    我想使用的 Python 脚本 称为snakefood http furius ca snakefood doc snakefood doc html 通常从命令行运行并采用命令行参数 例如 sfood path to my project
  • 如何指定 unicode 字符范围

    如何指定 Unicode 字符范围 空格 到 u00D7FF 我有一个正则表达式 例如r u0020 u00D7FF 并且它不会编译说这是一个糟糕的范围 我是 Unicode 正则表达式的新手 所以以前没有遇到过这个问题 有没有办法让这个编
  • swift 为 NSStream 创建字节缓冲区持有者

    in the Ray Wenderlich 套接字教程 http www raywenderlich com 3932 networking tutorial for ios how to create a socket based iph
  • Selenium 在 -browserSessionReuse 模式下启动新浏览器

    我正在尝试 browserSessionReuse Selenium 模式来加速我的测试 但我注意到了一个奇怪的行为 这种模式的目的是避免在测试之间浪费时间打开浏览器 这就是它的工作原理 但并非总是如此 如果我连续运行测试 它们就会在同一个
  • 禁用 VS 代码中的警告

    在此输入图像描述 https i stack imgur com KVDnO png 当我点击禁用 工作区 错误是 无法禁用扩展 ESLint 扩展 Node js 扩展包 依赖于此 还有什么其他方法可以消除反应本机错误 你需要定义 esl
  • ggplot 在函数中不起作用,以字符串形式传入变量名

    我有以下简单的功能 但它的 ggplot 命令不起作用 当从命令行给出该命令时 该命令可以正常工作 gt testfn lt function gdf first second library ggplot2 print ggplot gd
  • 包含 symfony2 的文件

    我正在使用 google Drive api 在 symfony2 中进行捆绑 我在 Utils 文件夹中有一个类 Authentication 它与 google 中的文件 我放入完全相同的文件夹中 进行交互 我想将这些文件包含在我的 A
  • 在 B 列中为 A 列中的相同值选择最小值 excel?

    我想得到例如第 1 列中相同值的第 2 列中的最小值或最大值 在我的示例中 我希望值 A 列 1 的列 2 的最大值为 18 而 B 的最大值为 27 我尝试过使用数组函数 但无法使其正常工作 敬请期待任何提示或解决方案 Example C
  • 如何从 web 应用程序运行量角器?

    我想运行一些量角器测试 针对 angularApp 为此 我创建了一个用户界面 提示用户输入脚本文件 然后我需要以某种方式让量角器启动并运行测试 我有哪些选择来实现这一目标 您可以将文件传递到后端 并保存它 然后后端像平常一样执行测试pro
  • 有没有办法在 IE 中获取边框半径和渐变背景?

    我想知道是否有任何使用 javascript 或其他方法让 IE 显示边框半径或渐变背景的解决方法 我在寻找在 IE9 中使用 渐变和边框半径 的修复时遇到了这个问题 是的 虽然您现在可以在 IE9 中同时使用两者 但遗憾的是您不能同时使用
  • 使用 Vector 的 SIMD 向量化 C# 代码运行速度比经典循环慢

    我看过几篇文章描述了如何Vector
  • 递归重命名对象键

    我有一个递归函数来重命名对象的键名称 但我无法弄清楚如何重命名其中 2 个键 问题键是对象 我认为问题在于我正在检查对象类型 但此时如何重命名密钥 实际的数组非常大 但下面是一个缩小版本 任何帮助表示赞赏 var keys short ch
  • 表单中的两种方式数据绑定不起作用 Angular 2

    我有这个表单组件 它将作为输入User目的 我想使用该对象进行双向数据绑定 但它不起作用 有什么想法问题出在哪里吗 PS 问题似乎来自于输入参数的复制 如果我传递原始文件 它可以正常工作 但如果我传递副本 则两种方式的数据绑定将不起作用 我
  • 如何将日志消息从多处理模块路由到文件?

    In the Python 文档我发现记录消息 http docs python org library multiprocessing html logging在使用多处理模块生成不同进程的 python 脚本中是可能的 import m
  • 了解 Cassandra 中单个分区的读取

    我有一个 3 节点设置 Node1 172 30 56 60 Node2 172 30 56 61 和 Node3 172 30 56 62 它具有100K的单个分区数据 分区由nodeip构成 请查找 NodeIP 的令牌 分区值 172
  • 有序列表 (ol) 显示的数量?

    我的页面上有一个有序列表 ol 但编号根本没有显示 我已经这样做了 ol li my text li li my text li li my text li ol 当我输入上面的内容时 stackoverflow 能够按照我想要的方式正确渲
  • 替换序言中的空格

    在序言中是否可以用某个给定字符替换字符串的所有空格 例子 如果我有一个变量How are you today 而且我要How are you today 对于原子 有多种方法可以做到这一点 我发现以下特别简单 使用atomic list c
  • 在 Yii 2 中加载 jQuery 等核心脚本

    我一直很难弄清楚如何加载jQuery或其他核心脚本Yii 2 In Yii 1看来就是这样 在 Yii 2 中 app 是 Yii 的一个属性 而不是一个方法 所以上面的方法自然不行 而是改成 产生此错误 Getting unknown p