javascript - Webpack 和具有相对路径的字体

标签 javascript webpack webpack-dev-server

在 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')
}

当我从 root 访问 main.js 时,例如 http://localhost:8080/ ,字体加载正确,来自 http://localhost:8080/fonts/FrutigerLTStd-Light.woff 但是当我从子目录访问时,例如 http://localhost:8080/apps ,字体从http://localhost:8080/apps/fonts/FrutigerLTStd-Light.woff加载但它不存在。有没有办法强制从根(/)加载所有字体?

最佳答案

引用这个,这个确切的问题似乎是他们文档中的一章: https://github.com/webpack-contrib/sass-loader#problems-with-url

关于javascript - Webpack 和具有相对路径的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54042335/

相关文章:

javascript - 如何使用 jQuery .append() 添加图像?

javascript - 在调用 FB.init() 之前调用 FB.getLoginStatus()。如何使用 Facebook API?

javascript - 'resolve' 的 Expo webpack 配置不起作用

javascript - 注意数组到字符串的转换

javascript - 插件/预设文件不允许导出对象,只能导出函数。删除并保留 babel 安装?使用 webpack 选择?

javascript - 测试 React Js 根组件

javascript - Webpack:尝试公开捆绑对象以供其他脚本使用,对象仍未定义

javascript - 在我的 React 组件中使用 CSS 模块时,CSS className 没有反射(reflect)出来

webpack - HtmlWebpackPlugin 对 webpack dev server 的影响

reactjs - 运行 webpack-dev-server 时的 VSCode 调试,跳过断点