我有一个名为social
的模块,其目录如下:
frontend
-- modules
-- social
-- assets
-- SocialAsset.php
-- controllers
-- views
-- default
-- layouts
-- main.php
-- web
-- css
-- js
-- img
Module.php
我希望我的模块有自己的布局。因此,我为布局添加了文件SocialAsset
,main.php
,css
,js
和img
。但是,不幸的是,我无法访问我的css
/ js
/ img
个文件。
SocialAsset
档案:
<?php
namespace frontend\modules\social\assets;
use yii\web\AssetBundle;
class SocialAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $sourcePath = '@app/modules/social/web';
public $css = [
'css/social.css',
'css/toolkit.css'
];
public $js = [
'js/jquery.min.js',
'js/social.js',
'js/toolkit.js',
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
在main.php
中的我使用SocialAsset
这样的文件:
use frontend\modules\social\assets\SocialAsset;
SocialAsset::register($this);
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您只应在资产包中设置sourcePath
:
sourcePath
指定包含资产的根目录 此捆绑包中的文件。如果是root,则应设置此属性 目录不可通过Web访问。否则,你应该设置basePath
属性和baseUrl
,而不是。
这意味着您只需删除assset捆绑包中的$basePath
和$baseUrl
,Yii就会发布您的文件。
了解详情:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html