@gridsome/transformer-remark 不处理 css,它仅解析 markdown;css 是构建时资源,不由 graphql 索引,需转为 json/yaml 并用 source 插件导入才能查询;静态 css 应通过 import 或 加载。

@gridsome/transformer-remark 不处理 CSS,它只负责 Markdown 解析。Gridsome 本身不把 CSS 当作“数据”通过 GraphQL 查询——CSS 是构建时的资源,不是运行时可查询的节点类型。
GraphQL 里查不到 CSS 文件内容
你无法在 allCss 或类似类型中查询 .css 文件内容。Gridsome 的 GraphQL 数据层只索引被 source 插件显式导入的结构化数据(如 Markdown、JSON、YAML、GraphQL API 响应),而 CSS 属于构建依赖,由 Webpack 处理,不进入 GraphQL Schema。
想让样式“可查询”,得先转成结构化数据
如果真需要把样式配置暴露给 GraphQL(比如主题色、断点值、字体栈),必须手动将其转为 JSON/YAML,并用 @gridsome/source-filesystem 导入:
- 新建
data/theme.json,写入:{"primary": "#3b82f6","breakpoints": {"sm": "640px","md": "768px"}} - 在
gridsome.config.js中配置插件:plugins: [{ use: '@gridsome/source-filesystem', options: { path: './data/**/*.json', typeName: 'ThemeConfig' } }] - 然后就能在页面中用 GraphQL 查询:
query { allThemeConfig { edges { node { primary breakpoints } } } }
直接引入 CSS 文件的正确方式是 import 或 <link>
静态 CSS(如 Tailwind、自定义样式表)应通过标准前端方式加载:
- 在
main.js中:import '~/assets/css/tailwind.css' - 或在
layouts/Default.vue的<template></template>中:<link rel="stylesheet" href="/css/custom.css">(需把文件放static/css/) - 注意:路径必须以
/开头,且文件要放在static/目录下才可被直接访问
allFile 查询 CSS 文件内容,但 Gridsome 默认不为 CSS 创建 GraphQL 节点——除非你写自定义 source 插件或用 @gridsome/source-filesystem 强制把它当文本读取(不推荐,破坏构建语义)。样式逻辑和数据逻辑,在 Gridsome 里本就该分两条线走。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











