问题描述
@font-face {
font-weight: 400;
font-style: normal;
font-family: "TT norms Pro Regular";
src: local("TT norms Pro Regular"),url("TT norms Pro Regular.woff") format("woff");
}
字体与sass文件位于同一目录中。例子是
/05_fonts
- fonts.scss
- TT norms Pro Regular.woff
我的主要scss导入了上述fonts.scss。
我的问题是在目录的根目录而不是在我需要的dist/assets/fonts/
中创建了一个字体文件夹。
通过研究该问题,我发现可以将mix.config.fileLoaderDirs.fonts = 'dist/assets/fonts';
添加到我的webpack.mix.js
文件中。确实会将字体拖入dist/assets/fonts/
中。但是结果就是css了;
@font-face {
font-weight: 400;
font-style: normal;
font-family: "TT norms Pro Regular";
src: local("TT norms Pro Regular"),url("/dist/assets/fonts/TT norms Pro Regular.woff?2dbc9dffb1b3db6d23806b49fc286edf") format("woff");
}
这是不正确的,它必须为url("/assets/fonts/TT norms Pro Regular.woff?2dbc9dffb1b3db6d23806b49fc286edf")
添加mix.setResourceRoot('dist')
,然后添加mix.config.fileLoaderDirs.fonts = '/assets/fonts';
。在根目录中创建一个assets/fonts
文件夹。再次不正确。
如何使用正确的CSS dist/assets/fonts
将字体放入url("/dist/assets/fonts/TT norms Pro Regular.woff")
中?
解决方法
解决了...
mix.setPublicPath('dist');
mix.setResourceRoot('/');