我有一个nrwl/nxReact生成的应用程序,使用SCSS进行样式设置。在SCSS中导入字体或图像文件时,编译后的SCSS假设字体/图像将位于同一目录中。
示例SCSS:
@font-face {
font-family: "X";
src: url("./assets/fonts/X.woff");
font-weight: 400;
font-style: italic;
}
编制的SCSS:
@font-face {
font-family: "boreal";
**src: url("x.woff");**
font-weight: 400;
font-style: italic;
}
注意,字体URL被重写为在样式表所在的目录中获取。
有没有办法重写CSS URL?就像在普通Webpack中使用publicURL一样?
我曾尝试使用文件加载器尝试重命名字体的网址,但没有效果。
项目.json:
"targets" : {
"build": {
// ...
"webpackConfig": "apps/my-application/webpack.config.js"
}
}
网络包配置js:
module.exports = (config, context) => {
nrwlConfig(config);
return {
...config,
module: {
...config.module,
rules: [
...config.module.rules,
{
loader: require.resolve('file-loader'),
test: /\.(woff(2)?|ttf|eot|svg)?$/,
options: {
name: '[name].[ext]',
publicPath: '../../custom-folder',
},
},
],
},
//...
1条答案
按热度按时间jtw3ybtb1#
我曾在一个项目中使用类似的技术(Nx,webpack和Sass),我用来解决这个问题的解决方案是在我的index.html上“导入”我的本地字体,您应该按照下面的步骤来实现这个方法:
1.创建一个包含字体文件的“fonts”文件夹。
1.在./fonts中创建一个.css文件,用于导出和格式化字体
@字体外观{字体系列:Lato;源代码:url(“Lato-常规. woff”)格式(“woff”)}
1.使用./index.html上的标记在项目中使用localFont。
1.在你的根sass文件中创建一个变量来保存那个字体。
就这样,我希望这能解决你的问题。