我尝试创建用于编辑图片的库。我有主要的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',
  ];
}

10-05 20:54
查看更多