如何访问 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
我希望我的模块有自己的布局。因此,我为布局添加了文件 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);
有人可以帮我解决这个问题吗?
您应该只在资产包中设置 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
我有一个名为 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);
有人可以帮我解决这个问题吗?
您应该只在资产包中设置 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 thebasePath
property andbaseUrl
, instead.
这意味着您应该简单地删除资产包中的 $basePath
和 $baseUrl
,然后 Yii 将 发布 您的文件。
阅读更多:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html