如何在Yii2中访问css / js文件以获取模块的布局

时间:2015-10-18 06:18:42

标签: yii2 yii2-advanced-app yii-modules

我有一个名为social的模块,其目录如下:

frontend
-- modules
    -- social
        -- assets
            -- SocialAsset.php
        -- controllers
        -- views
            -- default
            -- layouts
                -- main.php
        -- web
            -- css
            -- js
            -- img
        Module.php

我希望我的模块有自己的布局。因此,我为布局添加了文件SocialAssetmain.phpcssjsimg。但是,不幸的是,我无法访问我的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);

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您只应在资产包中设置sourcePath

  

sourcePath指定包含资产的根目录   此捆绑包中的文件。如果是root,则应设置此属性   目录不可通过Web访问。否则,你应该设置   basePath属性和baseUrl,而不是。

这意味着您只需删除assset捆绑包中的$basePath$baseUrl,Yii就会发布您的文件。

了解详情:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html