Yii2 AssetBundle publishOptions模式语法?

耶稣

可能很愚蠢,但只想问一下我在发布资产文件时使用的语法是否正确。该指南指示使用文件夹名称时,不要在其后加上星号,但是对我而言,它不是那样工作的。

奇怪的是,即使我指定仅发布css和images文件夹,assetManager也将发布其他文件夹$sourcePath(幸运的是其中没有文件)。此外,将新文件添加到images文件夹后,它们将保持未发布状态,直到我删除该@web/assets文件夹为止这是可以预期的吗?

<?php
namespace app\views\layouts\main\assets;
use yii\web\AssetBundle;

class ThemeAsset extends AssetBundle
{
    public $sourcePath = '@theme';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];

    public $publishOptions = [
        "only" => [
            "css/*",
            "images/*",
        ],
        "forceCopy" => false,
    ];
}
梅萨姆

首先要注意的是,您应该同时设置$sourcePath$baseUrl设置两者(如果同时设置了两者,则前者将在assetManager调用publish方法时覆盖最后一个)。

奇怪的是,即使我指定仅发布css和images文件夹,assetManager也会在$ sourcePath中发布其他文件夹(幸运的是里面没有文件)。

如果要避免资产管理器发布此文件夹,则必须在except参数上提及它们publisOptions

'except' => [
    "doc/",
    "img/",
],

而且,将新文件添加到images文件夹后,它们将保持未发布状态,直到我删除@ web / assets文件夹为止。这是可以预期的吗?

是的!这是自然的行为。你可以设置forceCopy的属性publishOptions,以true开发方式。这将导致在每次刷新时更新资产内容。您可以轻松地使用Yii生产常数:YII_DEBUG

public $publishOptions = [
    'only' => [
        'js/',
        'css/',
    ],
    'forceCopy' => YII_DEBUG,
];

因此,总的来说,您有一个这样的资产管理器:

<?php
namespace app\views\layouts\main\assets;
use yii\web\AssetBundle;

class ThemeAsset extends AssetBundle
{
    public $sourcePath = '@theme';

    public $css = [
        'css/site.css',
    ];

    public $publishOptions = [
        "only" => [
            "css/*",
            "images/*",
        ],
        'except' => [
            "doc/",
            "img/",
        ],
        "forceCopy" => YII_DEBUG,
    ];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Yii2向AssetBundle添加条件

来自分类Dev

yii2 @bower无法从assetbundle文件中解析

来自分类Dev

Yii2 AssetBundle中的Javascript未在更新时发布

来自分类Dev

如何添加仅在yii2的一页中添加的assetbundle js / css?

来自分类Dev

如何在AssetBundle中为CSS添加“ type ='text / css'”-Yii2

来自分类Dev

如何在AssetBundle中为CSS添加“ type ='text / css'”-Yii2

来自分类Dev

yii2 beforeSave 模式下拉列表

来自分类Dev

Yii2:列表框的语法正确吗?

来自分类Dev

Yii2 dropDownList仅在创建模式下禁用

来自分类Dev

NavBar小部件使用模式Yii2登录

来自分类Dev

使用Yii2在sqlserver中选择模式和表?

来自分类Dev

Yii2整页加载到模式div

来自分类Dev

Yii2 dropDownList仅在创建模式下禁用

来自分类Dev

在Yii2中使用MySQL“ IN”语法绑定参数的正确方法?

来自分类Dev

Yii2 querybuilder使用原始SQL的表名的正确语法

来自分类Dev

在 yii2 中运行原始 SQL 时获取 SQL 查询语法错误或访问冲突

来自分类Dev

如何检查 Yii2 代码标准中的解析或语法错误?

来自分类Dev

Yii2 Rest API带有多个控制器的额外模式

来自分类Dev

如何在Gridview视图和更新按钮上实现Yii2模式对话框?

来自分类Dev

Yii2:如何在事务中禁用/启用自动提交模式?

来自分类Dev

yii2 URL管理两个命名子模式

来自分类Dev

在哪里为开发/生产模式定义不同的资产文件?-Yii2

来自分类Dev

Yii2:如何指定多个数据库模式?

来自分类Dev

Yii2:如何为 UrlManager 建立正确的分页模式?

来自分类Dev

在主布局中使用<script>标记而不是在Yii PHP框架中使用AssetBundle有什么问题?

来自分类Dev

Yii2认证

来自分类Dev

Yii2 DatePicker

来自分类Dev

Yii2翻译

来自分类Dev

Yii2 attributeLabels()

Related 相关文章

热门标签

归档