浏览器加载旧前端资源时,需执行五步操作:一、运行npm run build构建生产资源;二、Laravel 10+用@vite注入Vite资源;三、Laravel 9-用npm run production生成哈希文件并配合mix()函数;四、清除view与config缓存;五、检查public目录权限及storage软链接。

如果您在 Laravel 项目中修改了前端资源(如 CSS、JS、图片等),但浏览器仍加载旧版本,则可能是资源未正确发布或缓存未更新。以下是发布资源文件的具体操作步骤:
一、执行 npm run build 构建生产资源
此步骤将编译 Mix 配置中定义的资源,生成压缩后的静态文件并输出至 public 目录。确保已安装 Node.js 和 npm,并在项目根目录下运行构建命令。
1、打开终端,进入 Laravel 项目根目录。
2、执行 npm install 安装依赖(若 node_modules 不存在或已更新)。
3、执行 npm run build 运行 Vite 或 Laravel Mix 的生产构建流程(Laravel 10+ 默认使用 Vite;Laravel 9 及更早版本多用 Mix)。
4、确认 public/build/ 或 public/ 目录下已生成 manifest.json、assets/ 子目录及编译后文件。
二、发布 Vite 资源(Laravel 10+)
Vite 构建后需通过 Blade 指令注入资源引用,无需额外发布命令,但必须确保 vite.config.js 输出路径与 Blade 中调用一致,并启用 @vite 指令自动注入。
1、检查 vite.config.js 中 build.outDir 是否为默认值 'public/build'。
2、在主 Blade 布局文件(如 resources/views/layouts/app.blade.php)顶部添加 @vite(['resources/css/app.css', 'resources/js/app.js'])。
3、清空浏览器缓存,访问页面验证 CSS/JS 是否正常加载且无 404 错误。
三、发布 Mix 资源(Laravel 9 及以下)
Laravel Mix 构建产物默认输出到 public/mix-manifest.json 及 public/ 下对应路径,需确保 mix() 辅助函数能正确解析版本哈希。
1、确认 webpack.mix.js 中已调用 mix.version() 启用文件哈希化。
2、执行 npm run production(而非 dev)生成带哈希的文件和 mix-manifest.json。
3、在 Blade 模板中使用 {{ mix('css/app.css') }} 引入资源,系统将自动映射至带哈希的文件名。
四、清理视图与配置缓存
Blade 模板编译缓存和配置缓存可能导致资源路径未及时更新,尤其在部署后首次访问时。
1、执行 php artisan view:clear 删除 storage/framework/views/ 下所有编译视图文件。
2、执行 php artisan config:clear 清除配置缓存,确保 filesystems.php 等配置生效。
3、如使用 OPCache,可执行 php artisan opcache:clear(需启用 opcache:clear 命令)或重启 PHP-FPM。
五、验证 public 目录权限与软链接
public 目录是 Web 服务器直接访问的根路径,其子目录和文件必须具有可读权限;storage/app/public 的软链接也需正确指向以支持 Storage::url() 生成的 URL。
1、确认 public/storage 是指向 ../storage/app/public 的符号链接(Linux/macOS)或目录联接(Windows)。
2、若链接缺失,执行 php artisan storage:link 重建。
3、检查 Web 服务器用户(如 www-data、nginx)对 public/ 及其子目录是否具有读取权限,必要时运行 chmod -R 755 public/。


















