Yii consente di minimizzare e comprimere JS. Voglio comprimere tutto il JS dell'app e utilizzare il jQuery ospitato da Google. Come faccio a fare questo?Come si minimizzano tutte le risorse TRANNE jQuery in Yii?
Yii consente di specificare la fonte per jQuery http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#customizing-asset-bundles
Ma sto già utilizzando il tasto bundles
per il compressed assets:
'bundles' => require(__DIR__ . '/' . (YII_ENV_PROD ? 'assets-prod.php' : 'assets-dev.php')),
assets-prod.php
viene generato automaticamente. Ho provato la personalizzazione del pacchetto di asset durante la compressione con questo
assets.php
// Asset manager configuration:
'assetManager' => [
'basePath' => '@webroot/assets',
'baseUrl' => '@web/assets',
'bundles' => [
'yii\web\JqueryAsset' => [
'sourcePath' => null, // do not publish the bundle
'js' => [
'//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js',
],
],
],
],
Ma quando mi sono imbattuto yii asset assets.php config/assets-prod.php
non ha generato alcun file jQuery a tutti. Questo è quasi ciò che volevo, ma quando ho caricato la pagina, jQuery mancava del tutto. Non c'era alcun riferimento a jQuery. Ha creato questo assets-prod.php
, che sembra sbagliato
'yii\\web\\JqueryAsset' => [
'sourcePath' => null,
'js' => [],
'css' => [],
'depends' => [],
],
Ok così ho poi provato Asset Mapping http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#asset-mapping. Ho messo questo in web.php
'assetMap' => [
'jquery.js' => '//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js',
],
Tuttavia, ancora non sarebbe caricare jQuery. Ho ripristinato assets.php
e ho eseguito nuovamente yii asset assets.php config/assets-prod.php
, ma poi è tornato a inserire jQuery nell'unico file JS minificato.