我尝试创建用于编辑图片的lib。我有主要的js文件包括所有其他js,CSS和图像文件。例如,我用过:
$.getScript(site_url + '/vendor/first_folder/second_folder/assets/js/script.js');
我在AppAsset.php上阅读了网络集的路径,如果我要求在扩展配置中将@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,images文件可以更改哪些内容?
P.S。 我尝试在js中使用不同的路径更改这个部分,但没有人工作,所以我认为问题不在于此:
$.getScript(site_url + '/vendor/first_folder/second_folder/assets/js/script.js
);
答案 0 :(得分:2)
供应商文件夹无法通过网络访问。一种解决方案是将css,js,img从vendor文件夹符号链接到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',
];
}