【发布时间】:2017-05-15 12:09:45
【问题描述】:
我使用 create-react-app 创建了一个 react 项目,并且正在使用这个文件夹结构:
- 源/
- 组件/
- 菜单/
- Menu.scss
- 菜单/
- 全球/
- 字体/
- myfont.ttf
- 等等……
- myfont.scss
- 字体/
- 组件/
在 Menu.scss 中,我使用 @import '../../Global/myfont'; 导入。
在 myfont.scss 中,我包含了字体:
@font-face {
font-family: 'myfont';
src: url('./fonts/myfont.ttf');
...
font-weight: normal;
font-style: normal;
}
我收到“错误:找不到模块”。
如果为了测试,我将路径更改为src: url('../../Global/fonts/myfont.ttf');,一切正常。
有没有办法设置 URL 路径,使其无论从哪里导入都能正常工作?
【问题讨论】:
-
如果您已经在
myfont.scss上注册了它(假设它以您的webpack/其他方式加载),如果您只使用font-family: myfont;,它在Menu.scss上不起作用吗? -
不,myfont 还没有在任何地方导入。我在我的 .js 模块文件中导入 scss 文件,我不完全理解普通的 sass(_partials 编译到主 css,并添加了编译 css to html) 与作为反应结构一部分的 sass 相关。这是我的第一个测试项目 :-)
-
如果您没有文件捆绑器,那么您从中导入的每个 scss 文件都将具有不同的路径,因为它位于项目结构中的不同位置。例如,如果您有一个在
index.js加载的 scss,那么它可以加载其他将使用我上面写的规则的 scss 文件。 -
是的,你是对的。还没有看过捆绑器的工作原理
标签: css reactjs sass font-face