簡體   English   中英

Yii2 CSS 到資產文件夾

[英]Yii2 CSS to asset folder

我的web/css/中有我的site.css

我在這里宣布

namespace frontend\assets;
use yii\web\AssetBundle;
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/cssweb/imagesweb/js中的所有內容都保存在 assets 文件夾中

如果您真的想將這些資源復制到/web/assets文件夾中,那么您需要做的就是使用$sourcePath屬性而不是$basePath@baseUrl屬性。

您應該將您的imagescssjs文件夾從web文件夾移動到其他位置,因為AssetManager將復制$sourcePath中引用的文件夾的全部內容。

假設您將其移至frontend/resources

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

但事實上你不應該這樣做 AssetManager將資源復制到web/assets文件夾中,以允許直接訪問通常無法訪問的文件,因為它們隱藏在widgetsmodulesvendor文件夾中。 如果您的資源文件已經在web服務器公開的 web 文件夾中,則無需將它們復制到其他地方。

您甚至會使從視圖文件中引用圖像變得更加困難,因為web/assets文件夾的哈希子文件夾的名稱不是固定的,並且它可以在您的資源文件更改時更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM