2015-10-18 48 views
2

我有一个名为social,像这样的目录模块:
如何访问CSS/JS文件模块的布局Yii2

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

我希望我的模块有自己的布局。因此,我添加文件SocialAsset,main.php布局,css,jsimg。但是,不幸的是我不能访问我的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

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

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

这意味着你应该简单地在你的assset包删除$basePath$baseUrl,Yii的然后将发布文件。

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

+0

谢谢你,它的工作! – Adi