Yii 3.0 彻底弃用 AssetBundle 和 assetManager,要求使用 Vite 等现代工具链构建静态资源,并将产物(如 public/assets/ 下带哈希的文件及 manifest.json)通过 Web 服务器直接提供;需确保 config/web.php 无 assetManager 配置、vendor 中无相关类、DocumentRoot 指向 public/,否则服务启动失败或资源不可达。

Yii 3.0 前端资源包打包配置要求你彻底放弃 AssetBundle 和 assetManager,转而使用现代前端工具链生成静态产物,并将构建结果路径直接注入框架运行时。
确认 Yii 3.0 不再管理资源
执行 composer show yiisoft/yii-web,检查输出中不含 yii\web\AssetManager 或任何 AssetBundle 类——这说明框架已移除全部资源发布逻辑。若发现残留类名或配置项,说明未真正升级到 3.0 正式版(2025年12月31日发布),需重新安装 yiisoft/app 或清空 vendor 后重装。
打开 config/web.php,确认不存在 'assetManager' => [...] 配置块。存在即为错误配置,【会引发服务启动失败】,因为 Yii 3.0 的 DI 容器根本不注册该组件。
用 Vite 打包并对接构建产物
方法一:初始化 Vite 项目并输出到 @public/assets/
立即学习“前端免费学习笔记(深入)”;
在项目根目录运行:npm create vite@latest assets -- --template vanilla,进入 assets 目录,修改 vite.config.js:
export default defineConfig({ build: { outDir: '../public/assets', emptyOutDir: true, rollupOptions: { output: { entryFileNames: `assets/[name].[hash].js`, chunkFileNames: `assets/[name].[hash].js`, assetFileNames: `assets/[name].[hash].[ext]` } } } });
执行 npm run build 后,public/assets/ 下将生成带哈希的 JS/CSS 文件和 manifest.json。
HISUI 前端框架基础开发指南。HISUI 是基于 easyui 二次开发的 jQuery UI 组件库,专为医疗信息系统设计。当涉及 HISUI 组件开发、jQuery easyui 表格/表单/布局/窗口、医疗系统前端页面编写时使用此 skill。 涵盖 40 个组件的官方文档参考,支持声明式与编程式两种初始化方式,提供 $cm/$m 数据访问方法。
方法二:在 Yii 应用中读取 manifest 并注入 HTML
创建 src/Infrastructure/AssetPublisher.php:
final class AssetPublisher { public function getScriptTags(): array { $manifest = json_decode(file_get_contents(__DIR__.'/../../public/assets/manifest.json'), true); return array_map(fn($entry) => sprintf('<script src="/assets/%s" type="module"></script>', $entry['file']), $manifest); } }
在视图中调用:<?php foreach ($assetPublisher->getScriptTags() as $tag): ?>= $tag ?><?php endforeach; ?>
配置 public 目录为 Web 根路径
第一步:确认 Web 服务器 DocumentRoot 指向 public/ 目录,而非项目根目录。Apache 需设置 DocumentRoot /path/to/project/public;Nginx 需设 root /path/to/project/public;。
第二步:验证 public/index.php 中的 $app = new Application(...) 初始化代码未被修改,且 Application 构造函数传入的 basePath 是绝对路径,例如 dirname(__DIR__)。
第三步:访问 http://localhost/assets/,应能直接列出构建产物文件。若返回 404,说明 Web 服务器未正确映射,【此时所有前端资源均不可达】,必须修正服务器配置后再继续。

















