如何在 yii2 中将应用程序资产编译为模块资产?

How to compile the app assets as module assets in yii2?

我正在使用 Yii2 基本应用程序。我保留了两个不同的资产包。一个用于模块资产,另一个用于全局主题资产。在加载模块控制器时,在视图文件中,我正在注册模块资产包以及全局主题资产包。但是模块资产包被编译并且文件路径指向编译目录而不是真实目录,如下所示:

<script src="/themes/app/js/jquery.uniform.js"></script>
<script src="/themes/app/js/myscript.js"></script>
<script src="/assets/50f10fbd/ckeditor.js"></script>
<script src="/assets/308fb5b9/js/cases.js"></script>

在以上四个脚本标签中,前两个是从全局主题资源加载,后两个是从模块资源包加载,但模块资源路径是编译的。是否可以像模块一样编译全局主题资产包?

仅根据名称我不能说文件是否是 compiled - 唯一可以肯定的是它们只是简单地复制到资产文件夹(就资产而言是 publishing ).

无法从 public 文件夹(基本模板中的默认 web )访问资产时需要复制它们。其他情况不需要复制。

要强制复制资产 (publish),您必须在 AssetBundle 中设置 $sourcePath,以便资产管理器可以从那里复制文件。

当然,一旦您需要 publish 资产,您也可以编译它们。

Assets section of Yii 2 Guide 中阅读有关资产、发布、分组和编译它们的更多信息。