我在用11ty做静态站点,想把CSS文件单独引入到某个页面,但发现样式没生效。我试过在.njk模板里用{% set css %}styles.css{% endset %},也试过直接link标签,都不行。
这是我的CSS内容:
.hero {
background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%);
color: white;
padding: 2rem;
}
控制台也没报错,但页面上完全没应用这个样式,是不是11ty对静态资源的处理方式不一样?
解决办法:
1. 把CSS文件放到 src 目录下,比如
src/styles/styles.css2. 在项目根目录的 .eleventy.js 里添加 passthrough copy 配置:
3. 在你的 .njk 模板里用绝对路径引用:
注意这里用的是
/styles/styles.css,不是相对路径。11ty生成的是静态站点,资源路径要相对于最终输出的 _site 目录。还有一个容易踩的坑:如果你的CSS文件放在 _includes 目录下,那它会被当作模板处理而不是静态资源复制,这种情况下也需要配置 passthrough。
你检查一下CSS文件是否成功复制到 _site/styles/ 目录下,如果没复制过去就是配置问题。
_includes文件夹,把css扔进去,然后在模板里这样引入:或者更懒的方法:在
eleventy.js里加个配置让11ty帮你复制静态文件:然后直接用传统link标签就行。两种方法都亲测有效。