不幸的是,我工作的公司已经有很多为Mootools编写的客户端代码,他们似乎不太喜欢对方。:S
无论我做什么,我似乎都无法阻止jQuery被包含在每个页面中。有什么想法吗?
发布于 2015-08-11 17:39:54
默认情况下,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客户端功能,请删除'yii\web\YiiAsset‘依赖项。
发布于 2015-08-11 17:58:51
转到您的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。它会让你的生活变得轻松许多。
发布于 2015-08-11 18:00:34
from docs您可以通过将false关联到jQuery资源包来禁用该资源包:
return [
// ...
'components' => [
'assetManager' => [
'bundles' => [
'yii\web\JqueryAsset' => false,
],
],
],
];
但是你需要考虑到很多jQuery built in widgets会停止工作。
我不太了解Mootools,但如果它支持AJAX,并且你正在构建一个完整的前端,那么你也可以考虑使用Yii as a REST Service。
https://stackoverflow.com/questions/31947041
复制相似问题