【问题标题】:How to access css/js file for layout of a module in Yii2如何在 Yii2 中访问 c​​ss/js 文件以进行模块布局
【发布时间】:2015-10-18 06:18:41
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    你应该只在你的资源包中设置sourcePath

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 2015-10-29
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多