css - Node.js 项目中不显示加载的字体
问题描述
我正在尝试在我的 node.js 项目中显示谷歌字体。我必须添加文件加载器来加载 .ttf 文件,但它没有显示。它似乎加载正常 - 这是我的终端输出:
这是我的 webpack.config:
const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const autoprefixer = require('autoprefixer');
const javascript = {
test: /\.(js)$/,
use: [{
loader: 'babel-loader',
options: { presets: ['env'] }
}],
};
const postcss = {
loader: 'postcss-loader',
options: {
plugins() { return [autoprefixer({ browsers: 'last 3 versions' })]; }
}
};
const styles = {
test: /\.(scss)$/,
use: ExtractTextPlugin.extract(['css-loader?sourceMap', postcss, 'sass-loader?sourceMap'])
};
const fonts = {
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: './public/fonts/'
}
}
]
}
const uglify = new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false }
});
const config = {
entry: {
App: './public/javascripts/app.js'
},
devtool: 'source-map',
output: {
path: path.resolve(__dirname, 'public', 'dist'),
filename: '[name].bundle.js'
},
module: {
rules: [javascript, styles, fonts]
},
plugins: [
new ExtractTextPlugin('style.css'),
]
};
process.noDeprecation = true;
module.exports = config;
浏览器显示字体已应用(在 Chrome 和 Firefox 中验证):
但它没有显示:
浏览器是否告诉我它已设置为 Oswald 但由于某种原因恢复为默认值?
我的 CSS:
.device {
@font-face {
font-family: 'Oswald';
font-display: auto;
src: url("../fonts/Oswald-VariableFont_wght.ttf");
font-weight: normal;
font-style: normal;
}
h2 {
font-family: 'Oswald';
text-transform: uppercase;
}
...
}
我验证了路径“../fonts/Oswald-VariableFont_wght.ttf”是正确的。例如,如果我将其更改为“.../fonts/Oswald-VariableFont_wght.ttf”,我会收到一个新错误。
我错过了什么?
@import url("https://fonts.googleapis.com/css?family=Oswald:400");
更新:如果我添加到末尾,我可以让字体正确显示,@font-face
所以我怀疑问题是如何使用 webpack 配置加载字体。我会和它一起玩...
解决方案
看来您的文件是在目录style.css
中编译的。public
因此,在这种情况下,字体的路径将是./fonts/Oswald-VariableFont_wght.ttf
.
推荐阅读
- javascript - 有没有办法从这些对象中提取数据值
- python - 如何按年扩展/添加行?
- postgresql - 如何使用 postgresql 和 kenx.js 从表中查询最近 3 个月的行
- powerbi - 如何将spotfire中的计算列转换为Power Bi
- java - 考虑到 URL/URI 格式输入字符串的可能性,是否有标准方法将字符串转换为文件
- flutter - 飞镖提供者:直系子女不可用
- r - 如何将函数的结果写入列表?
- sql - Access 数据库:如何从 SQL 数据库/表中导入查询的数据
- python - 如何使用python爬取html字符串内容(逐个标签)
- r - 将 3D 数组转换为数据框