【发布时间】:2019-09-25 17:15:39
【问题描述】:
如何在全局 SASS 样式表中指定背景图片?在“src”文件夹中,我有一个“sass”文件夹,其中包含一个样式表,其中包含以下内容:
background-image: url(../assets/test.jpg)
“assets”文件夹与“sass”文件夹处于同一级别。除了上面的路径,我还尝试过使用“./”和“../../”都没有成功。
错误:
ERROR in ./src/assets/test.jpg 1:0
Module parse failed: Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
单独调用 import image from '../assets/test.jpg',而不从 SASS 中调用文件也会引发错误。
我相信我已经找到了问题的原因;我的 include: 值配置不正确。目前,我的所有媒体文件都位于 /assets/ 文件夹中,因此它们似乎都被编译为 .svg 文件。
{
resolve: `gatsby-plugin-react-svg`,
options: {
rule: {
include: /assets/
}
}
}
插件问题在其文档的底部得到解决。 https://www.gatsbyjs.org/packages/gatsby-plugin-react-svg/?=gatsby-plugin-react-svg
通过重命名svg文件和更新插件设置include: /\.inline\.svg$/解决。
【问题讨论】:
-
你有加载器来处理 webpack.config.js 中来自 sass 的 .jpg 吗?
-
@Pio 直接从 js 文件调用时收到相同的错误。查看更新。
-
我在导入字体文件时遇到了同样的问题。 (意外字符'�')所以看起来有点奇怪。向我们展示你的 webpack.cofnig.js。并仔细检查您是否加载了好的文件
-
您好,您是否碰巧在
gatsby-node.js中修改了 webpack 设置或使用了任何可能这样做的插件? -
@DerekNguyen 添加的插件列表。据我了解,Gatsby 已配置 Webpack 以处理 jpg、gif、svg 等资产。gatsbyjs.org/docs/importing-assets-into-files/…