不幸的是,我工作的公司已经为Mootools编写了很多客户端代码,他们似乎并不喜欢彼此。 :S
无论我做什么,我似乎都无法阻止jQuery被包含在每一页中。有什么想法吗?
答案 0 :(得分:1)
默认情况下,Yii应用程序模板使用AppAsset
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
取决于YiiAsset
资产包,Yii内置小部件大量使用jQuery。删除' yii \ web \ YiiAsset'如果您不打算使用Yii客户端功能,则需要依赖。
答案 1 :(得分:1)
转到您的AppAsset.php并删除yii\web\YiiAsset
。
另外,转到主布局文件,删除默认的NavBar,因为它会调用jquery.js来渲染
#remove the default main menu below
NavBar::begin([
'brandLabel' => 'My Company',
'brandUrl' => Yii::$app->homeUrl,
'options' => [
'class' => 'navbar-inverse navbar-fixed-top',
],
]);
echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-right'],
'items' => [
['label' => 'Home', 'url' => ['/site/index']],
['label' => 'About', 'url' => ['/site/about']],
['label' => 'Contact', 'url' => ['/site/contact']],
Yii::$app->user->isGuest ?
['label' => 'Login', 'url' => ['/site/login']] :
['label' => 'Logout (' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post']],
],
]);
NavBar::end();
这将从Yii2中删除jquery.js。如果可以,我建议你从MooTools切换到Jquery。它让你的生活更轻松。
答案 2 :(得分:1)
HERE您可以通过将false与其关联来禁用 jQuery资产包:
return [
// ...
'components' => [
'assetManager' => [
'bundles' => [
'yii\web\JqueryAsset' => false,
],
],
],
];
但你需要考虑许多from docs将停止工作。
我对Mootools了解不多,但是如果它支持AJAX并且你正在建立一个完整的前端,那么你也可以考虑使用jQuery built in widgets。