在webpack.config.js中,有一个配置用于捆绑样式表(scss)和字体
{
use: [{
loader: 'style-loader'
},
{
loader: 'css-loader',
options: {
sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}],
test: /\.scss$/
},
{
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: './fonts/'
}
}]
}
样式表(styles.scss)使用此字体外观
@font-face {
font-family: "Frutiger Roman";
src: url("fonts/frutiger/FrutigerLTStd-Roman.eot");
src: url("fonts/frutiger/FrutigerLTStd-Roman.eot?#iefix") format("embedded-opentype"), url("fonts/frutiger/FrutigerLTStd-Roman.woff") format("woff"), url("fonts/frutiger/FrutigerLTStd-Roman.ttf") format("truetype"), url("fonts/frutiger/FrutigerLTStd-Roman.svg#Frutiger Roman") format("svg");
font-style: normal;
font-weight: 400;
}
webpack的输出是一个main.js文件
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist')
}
当我从根目录(例如http://localhost:8080/)访问main.js时,从http://localhost:8080/fonts/FrutigerLTStd-Light.woff正确加载了字体 但是,当我从子目录(例如http://localhost:8080/apps)访问时,字体是从http://localhost:8080/apps/fonts/FrutigerLTStd-Light.woff加载的,但是它不存在。有什么方法可以强制从根(/)加载所有字体?
答案 0 :(得分:0)
参考此内容,这个确切的问题似乎是其文档中的一章: https://github.com/webpack-contrib/sass-loader#problems-with-url