默认情况下,GatsbyJS正在推动使用css模块和自定义css-in-js库,如glamorous和typography
不幸的是,我正在将现有网站移植到使用传统全球样式表的GatsbyJS。将所有现有的HTML-CSS工具转换为CSS模块的努力是一件苦差事。
我目前的黑客攻击是更新GatsbyJS html.js
并添加
<link rel="stylesheet" type="text/css" href="/style.old.css" />
到标题。我style.old.css
居住在/public
这个,但是,当构建运行时,它会被删除。
我希望有一个插件来支持这一点,但似乎Gatsby团队正在劝阻全球CSS,这对新项目来说是可以理解的。
我试图编写一个插件来添加它,但是找到了有关如何编写“样式插件”的有限资源。
答案 0 :(得分:6)
你很亲密!
不要将style.old.css
放在/public
中,而是将其放在/layouts
中。然后,只需将其导入/layouts/index.js
,如下所示:
import './style.old.css'
当您启动新的gatsby项目(gatsby new project-name
)时,您会注意到index.css
文件夹中的/layouts
文件,默认情况下会导入layouts/index.js
。只需按照此示例添加您自己的全局样式表。
一般情况下,您不应直接在/public
放置任何内容。如果您希望静态文件最终放在/public
文件夹中,请创建一个/static
文件夹并将其放在那里(Gatsby会将/static
中的所有文件复制到/public
您)。