Yii让你缩小和压缩JS。我想压缩所有应用程序的JS并使用Google的托管jQuery。我该怎么做呢?
Yii允许您指定jQuery http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#customizing-asset-bundles
的来源但我已经使用了compressed assets的bundles
密钥:
'bundles' => require(__DIR__ . '/' . (YII_ENV_PROD ? 'assets-prod.php' : 'assets-dev.php')),
assets-prod.php
会自动生成。我尝试使用此
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',
],
],
],
],
但是当我运行yii asset assets.php config/assets-prod.php
时,它根本没有生成任何jQuery文件。这几乎是我想要的,但是当我加载页面时,jQuery完全丢失了。没有提到jQuery。它在assets-prod.php
中创建了这个,这似乎是错误的
'yii\\web\\JqueryAsset' => [
'sourcePath' => null,
'js' => [],
'css' => [],
'depends' => [],
],
好的,然后我尝试了资产映射http://www.yiiframework.com/doc-2.0/guide-structure-assets.html#asset-mapping。我将其放入web.php
'assetMap' => [
'jquery.js' => '//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js',
],
但是,它仍然不会加载jQuery。我恢复了assets.php
并再次运行yii asset assets.php config/assets-prod.php
,但后来又将jQuery放入了一个大的缩小的JS文件中。
答案 0 :(得分:0)
你必须使用“baseUrl”属性,如下所示:
class GoogleAsset extends AssetBundle{
public $baseUrl = 'http://maps.googleapis.com/maps/api';
public $js = [
'js?sensor=false&language=ru-ru®ion=ru-ru'
];
}
答案 1 :(得分:0)
您可以使用此配置
'yii\\web\\JqueryAsset' => [
'baseUrl' => '//ajax.googleapis.com/ajax/libs/jquery/2.1.3/',
'js' => ['jquery.min.js'],
'css' => [],
'depends' => [],
],
答案 2 :(得分:0)
您不需要basURL
<?php
namespace app\assets;
use yii\web\AssetBundle;
class GoogleApiAsset extends AssetBundle
{
public $js = ['//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js'];
}