如何访问 css/js 文件以在 Yii2 中进行模块布局

How to access css/js file for layout of a module in Yii2

我有一个名为 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);

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

您应该只在资产包中设置 sourcePath :

sourcePath specifies the root directory that contains the asset files in this bundle. This property should be set if the root directory is not Web accessible. Otherwise, you should set the basePath property and baseUrl, instead.

这意味着您应该简单地删除资产包中的 $basePath$baseUrl,然后 Yii 将 发布 您的文件。

阅读更多:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html