Yii2从js脚本页面上的vendor文件夹添加图像,css,js文件

时间:2015-04-01 14:53:59

标签: javascript php jquery css yii2

我尝试创建用于编辑图片的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);

1 个答案:

答案 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',
  ];
}