在 nuxt.config.js 的 css 数组中引入 CSS 可全局生效,但需注意路径必须相对于项目根目录且带扩展名,顺序影响优先级,SSR 下 CDN 链接易导致 FOUC,静态部署需启用 extractCSS。
直接在 nuxt.config.js 的 css 数组里写路径就能全局生效,但顺序、作用域和 SSR 兼容性容易出问题。
常见原因是加载顺序或作用域干扰:比如你引入了 bulma.css,又在组件里用了 <style scoped>,结果类名被自动加了属性选择器,覆盖不了 Bulma 的原始规则;或者你把自定义样式写在 css 数组前面,结果被后面引入的 UI 库重置掉了。
css 数组里的文件按顺序注入 <head>,靠后的 CSS 优先级更高element-plus)若带自己的 CSS,建议放在数组末尾css 中直接写 @import,Nuxt 不会解析它为真实依赖,可能造成 HMR 失效或 SSR 丢失路径必须相对于项目根目录,且不能漏掉扩展名。Nuxt 不会自动补 .css,写成 assets/css/main 会报 404。
css: ['~/assets/css/main.css']
css: ['~/assets/css/main'](缺后缀)css: ['./assets/css/main.css'](用相对路径,Nuxt 解析失败)sass 和 sass-loader,并写成 ~/assets/css/main.scss
Nuxt 支持直接写 node_modules 路径,也支持完整 URL,但要注意 SSR 场景下 URL 引入不会被服务端渲染——只在客户端加载,可能导致 FOUC(闪屏)。
立即学习“前端免费学习笔记(深入)”;
css: ['~/node_modules/swiper/swiper-bundle.min.css']
css: ['https://cdn.jsdelivr.net/npm/[email protected]/css/bulma.min.css']
link 配置并设 hid 防重复,而不是塞进 css 数组这是最常被忽略的一点:Nuxt 在 generate 模式下不会执行 CSS 提取逻辑(extractCSS: true 默认关闭),导致某些动态引入或条件加载的 CSS 没被打包进 _nuxt/ 目录。
nuxt.config.js 是否有 build: { extractCSS: true }(尤其在 target: 'static' 时)css 数组里,不要在 plugins 或组件中用 import 动态加载postcss-import 或 @import,确保它们在构建阶段能被正确解析(推荐改用 @use 或直接列在 css 中)真正卡住人的往往不是“怎么加”,而是“加在哪”和“加完谁先谁后”。多看生成的 HTML <head> 里实际插入的顺序,比查文档更快定位问题。