Yii2 CSS到资源文件夹



我的site.css变成了web/css/

我在这里声明过

namespace frontendassets;
use yiiwebAssetBundle;
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.min.css'
];
}

我如何得到AssetBundle复制到资产文件夹,使其看起来像这样

<link href="/frontend/web/assets/2edj2hj2jk/css/site.css" rel="stylesheet">

而不是这个?

<link href="/frontend/web/css/site.css" rel="stylesheet">

还是有其他方法来实现这一点?基本上,我希望web/css,web/imagesweb/js中的所有内容都保存在assets文件夹

如果你真的想将这些资源复制到/web/assets文件夹中,那么你所需要做的就是使用$sourcePath属性而不是$basePath@baseUrl属性。

你应该把images,cssjs文件夹从web文件夹移到其他地方,因为AssetManager会复制$sourcePath中引用的文件夹的全部内容。

假设你把它移到frontend/resources.

namespace frontendassets;
use yiiwebAssetBundle;
class AppAsset extends AssetBundle
{
public $sourcePath = '@frontend/resources';
public $css = [
'css/site.min.css'
];
}

但是实际上你不应该这样做AssetManager将资源复制到web/assets文件夹中,以允许直接访问通常无法访问的文件,因为它们隐藏在widgets,modulesvendor文件夹中。如果你的资源文件已经在web文件夹中,这是由web服务器公开的,那么没有必要将它们复制到其他地方。

你甚至会使它更难从你的视图文件引用图像,因为web/assets文件夹的哈希子文件夹的名称是不固定的,它可以改变当你的资源文件的变化。

相关内容

  • 没有找到相关文章

最新更新