I’ve seen many example on using AssetBundle. When using AssetBundle for image uploaded from user, I’m using this AssetBundle.
<?php
namespace common\assets;
use yii\web\AssetBundle;
/**
* Main frontend application asset bundle.
*/
class UploadAsset extends AssetBundle
{
public $sourcePath = '@common/web';
public $baseUrl = '@web';
}
And in view (gridview) I used this in my view
$image = \common\assets\UploadAsset::register($this);
Html::img($image->baseUrl.'/avatar/'.$model->avatar, ['width' => '70px', 'title' => $model->name, 'alt' => $model->name]);
When I posted first record, it works. But when I posted 2nd record it didn’t create new image in web/assets/ folder.
I know that we can use publishOptions with forceCopy set to true to force AssetManager create image to web/assets/, but I find example that we only use forceCopy in development only.
<?php
namespace common\assets;
use yii\web\AssetBundle;
/**
* Main frontend application asset bundle.
*/
class UploadAsset extends AssetBundle
{
public $sourcePath = '@common/web';
public $baseUrl = '@web';
public $publishOptions = [
'forceCopy'=>true,
];
}
Is there any downside on using forceCopy in production mode?