Php 更改jqueryaset';特定页面上的jQuery版本
我有一个资产包(AppAsset),它在我的主布局(main.php)中注册,用于整个应用程序的公共资产:Php 更改jqueryaset';特定页面上的jQuery版本,php,jquery,yii2,Php,Jquery,Yii2,我有一个资产包(AppAsset),它在我的主布局(main.php)中注册,用于整个应用程序的公共资产: class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = [ 'css/style.css', ]; public $depends = [ 'yii\web\J
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/style.css',
];
public $depends = [
'yii\web\JqueryAsset',
'yii\bootstrap\BootstrapAsset',
];
}
但在某个特定页面(不是整个应用程序!)上,我需要将jquery更改为较低版本,并连接其他资产。我正在注册另一个资产包,它依赖于所需视图文件中的主资产包AppAsset:
class GalleryAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/gamma/style.css',
'css/gamma/noJS.css',
];
public $js = [
'js/gamma/modernizr.custom.70736.js',
'js/gamma/jquery.masonry.min.js',
'js/gamma/jquery.history.js',
'js/gamma/js-url.min.js',
'js/gamma/jquerypp.custom.js',
'js/gamma/gamma.js',
];
public $depends = [
'app\assets\AppAsset',
];
}
问题是如何在子资产包GalleryAsset或某个视图文件(页面)中更改Jquery的版本
谢谢你们,上帝保佑你们 您可以在中阅读如何自定义资产捆绑包 但通过应用程序配置进行定制在这里并不合适,因为此时请求的路由未知 您可以在运行时使用组件更改必要的资产包:
use Yii;
...
Yii::$app->assetManager->bundles['yii\web\JqueryAsset'] = [
'sourcePath' => null,
'js' => ['jquery.js' => 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js'],
];
请确保在注册与该页面相关的资产包之前放置此代码
在这种情况下,依赖于yii\web\jqueryaset
的所有资产将导致注册旧版本
此外,我还建议您另外检查使用过的插件与此版本的兼容性(虽然没有那么旧)。谢谢。我像你说的那样做了:
classjqueryaset扩展了AssetBundle{public$sourcePath=null;public$js=['jquery.js'=>'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js', ]; }
现在我的页面上有两个jquery:第一个和第二个yii\web\jqueryaset的版本,它在加载所有脚本后会破坏我的代码。现在我该如何解决这个问题?我的回答对你有帮助吗?