根本原因是前端构建工具未运行导致public/css/app.css缺失或过期;需检查文件是否存在及修改时间,执行npm run production确认成功,验证mix()引用和mix.manifest.json有效性。

Laravel项目部署后页面纯文本显示、按钮无圆角、颜色错乱、布局塌陷,根本原因常不是CSS写错了,而是前端构建工具根本没运行,public/css/app.css 文件压根不存在或还是旧版本。
检查 public/css/app.css 是否真实存在
打开终端,进入 Laravel 项目根目录,执行:
【必须在项目根目录下执行】 运行 ls -l public/css/app.css 查看文件是否存在、修改时间是否为最近构建生成。
如果提示 No such file or directory,说明 npm 或 Laravel Mix 根本没跑过;如果文件时间停留在几周前,说明上次构建后改了 CSS 却忘了重新构建。
这一步跳过会导致后续所有排查都白费——连文件都没有,浏览器自然加载失败。
确认 npm run production 是否成功执行
方法一:直接运行构建命令
在项目根目录下执行:npm run production
等待命令完成,观察终端输出末尾是否有 ✔ Mix: Compiled successfully 或类似成功标识。若中途报错(如 Node 版本不匹配、postcss 插件缺失),必须解决错误后再重试。
方法二:检查 package.json 中的 scripts 配置
打开 package.json,确认 "scripts": { "production": "mix --production" } 这一行存在且未被注释。有些团队误删或改写成 "prod": "mix",但 Laravel 默认调用的是 npm run production,名字不匹配就什么都不会发生。
⚠️ 注意:仅执行 npm install 不会生成 CSS 文件,它只装依赖;composer install 也完全不碰前端资源。
验证构建产物是否被正确引用
第一步:打开 resources/views/layouts/app.blade.php 或你实际引入 CSS 的模板文件。
第二步:找到类似 <link rel="stylesheet" href="%7B%7B%20mix('css/app.css')%20%7D%7D"> 的行。
第三步:确认该行没有被注释掉,且 mix() 函数未被替换为 asset() 或硬编码路径。
第四步:检查 public/mix.manifest.json 是否存在且内容合法——用文本编辑器打开它,应看到形如 {"/css/app.css":"/css/app.css?id=8a7b3c"} 的 JSON 结构。如果文件为空、损坏或根本不存在,mix() 将返回空字符串,导致 link 标签 href 为空,浏览器不加载任何 CSS。
这一步出错,页面就会静默丢失样式,控制台也不会报 404,因为根本没发请求。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











