我尝试创建用于编辑图片的库。我有主要的js文件,其中包括所有其他js,css和图像文件。例如,我使用了:
$.getScript(site_url + '/vendor/first_folder/second_folder/assets/js/script.js');
我在AppAsset.php上读取了Web集的路径,如果我要求在扩展配置中将@webroot更改为@vendor ..我认为这是错误的。我创建了MyAsset.php并在其中进行了以下配置:
namespace app\vendor\first_folder\second_folder;
use yii\web\AssetBundle;
class EdikEditorAsset extends AssetBundle {
public $sourcePath = '@vendor/first_folder/second_folder/assets/';
public $css = [
'css/main.css'
];
public $js = [
'js/jquery.colorbox-min.js',
'js/main.js'
];
}
但是我无法从我的扩展中包括其他js,css和图像文件,因为所有js,css和图像都从web文件夹开始,并且我不知道上面怎么做。我可以更改供应商文件夹中的js,css,图像文件吗?
附言
我试图在js中使用不同的路径更改此部分,但没有人工作,所以我认为问题不在此:
$.getScript(site_url + '/vendor/first_folder/second_folder/assets/js/script.js
); 最佳答案
供应商文件夹不可通过Web访问。一种解决方案是将供应商文件夹中的css,js,img符号链接(symbolic link)到web文件夹中。然后包括。或者这是Yii的方法:
<?php
namespace app\assets;
use yii\web\AssetBundle;
class BootstrapAsset extends AssetBundle {
//set the source path using @vendor or another alias like @bower here
public $sourcePath = '@bower/bootstrap/dist';
//include css and js relative to the source path set above
public $css = [
'css/bootstrap.css',
];
public $js = [
'js/bootstrap.min.js',
];
}