如何在Laravel框架中通过Vite或是Mix工具引入CSS资源?

雨浩吖_6580

雨浩吖_6580

2026-06-20

904人浏览

原创

vite 和 mix 互斥,混用会导致资源 404、hmr 失效等;需通过文件存在与否及进程确认工具,再按各自规则配置 css 引入与清理残留。

如何在laravel框架中通过vite或是mix工具引入css资源?

必须二选一,不能混用 —— Vite 和 Mix 是互斥的构建层,同时存在会导致资源 404、HMR 失效、CSS 变量丢失甚至白屏。

确认当前项目用的是 Vite 还是 Mix

先看有没有 webpack.mix.js 文件:有且 npm run dev 启动的是 Webpack Dev Server(默认端口 :8080),就是 Mix;没有、但存在 vite.config.js 且 npm run dev 启动的是 vite(默认端口 :5173),就是 Vite。别凭印象判断,ps aux | grep -i "vite\|webpack" 看实际进程更准。

常见错误现象:

  • Blade 里写了 @vite(['resources/css/app.css']) 却加载出错,其实是项目还在跑 Mix
  • 删了 webpack.mix.js 但没清 public/mix-manifest.json,mix() 函数仍返回旧路径,导致 CSS 加载错版本
  • 误以为 asset('css/app.css') 能替代 @vite,结果开发时 404(Vite 开发模式不把文件写入 public/)

Vite 下正确引入 CSS 的三个硬性条件

Vite 不会自动提取或注入 CSS,它依赖 JS 入口的显式 import 触发处理。所以光在 Blade 里写 @vite 不够,必须满足:

  • resources/js/app.js(或其他入口 JS)中必须有 import '../css/app.css' —— 路径要对,且不能漏掉 .css 后缀
  • vite.config.js 中的 build.rollupOptions.input 或 laravel({ input: [...] }) 必须包含这个 JS 入口文件(如 'resources/js/app.js'),否则 CSS 不进构建图
  • Blade 模板中只能用 @vite(['resources/css/app.css', 'resources/js/app.js']),路径必须和 vite.config.js 中声明的入口完全一致(大小写、斜杠方向、是否带 resources/ 前缀)

如果用了 Tailwind,确保 resources/css/app.css 里按顺序写了:@tailwind base;、@tailwind components;、@tailwind utilities;,Vite 不会像 Mix 那样自动补全 PostCSS 配置。

Laravel Creem Agent
Laravel Creem Agent

Creem 支付商店助理 — 查询订阅、客户、交易、产品,执行心跳检查,管理本地 Laravel支付商店。

下载

Mix 下引入 CSS 的关键配置点

Mix 的 CSS 引入靠 mix() 函数 + mix-manifest.json 映射,核心是让 Webpack 知道“编译目标”和“输出位置”:

  • webpack.mix.js 中必须调用 .postCss('resources/css/app.css', 'public/css') 或 .sass()/.stylus() 等对应方法,不能只写 .js()
  • 确保 public/mix-manifest.json 存在且内容有效(比如 {"/css/app.css": "/css/app.css?id=abc123"}),部署后若删了它,mix() 会 fallback 到原始路径,导致无哈希、缓存问题
  • Blade 中必须用 {{ mix('css/app.css') }},路径是相对于 public/ 的输出路径,不是源文件路径(比如不能写 {{ mix('resources/css/app.css') }})

注意:Mix 默认不处理 @import 的 CSS 文件,除非它们被主入口文件直接引用或显式加入构建链。

切换工具时最容易被忽略的清理动作

从 Mix 切 Vite 或反过来,90% 的 CSS 加载失败源于残留文件和缓存:

  • 停掉所有开发服务器后,执行:rm -f webpack.mix.js public/mix-manifest.json public/build/ manifest.json node_modules/.bin/webpack*
  • 清空浏览器缓存(尤其是 Service Worker),或开无痕窗口测试
  • 检查 config/vite.php 中的 'build_directory' 是否为 'build'(默认值),并与 vite.config.js 的 build.outDir 严格一致
  • Vite 生产环境必须上传 public/build/manifest.json,这个文件丢了,@vite 就只能回退到未哈希路径,CDN 或反向代理可能缓存旧版

真正麻烦的从来不是怎么写那行 @vite 或 mix(),而是构建产物路径、manifest 文件、Blade 路径、vite.config.js 入口数组这四者之间差一个字符就全崩。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

4356

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

957

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1818

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3406

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

6825

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

5811

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

1977

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

2751

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2393

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何安装 Composer
如何安装 Composer

共1课时 | 201人学习

Composer手册
Composer手册

共0课时 | 0人学习