当前位置: 首页 > 知识库问答 >
问题:

与sass加载器不工作的字体的相对路径

文增
2023-03-14

我有一个完全干净的项目,利用vue模板/pwa。一切都按计划进行。已加载SCSS文件,但字体路径失败。

错误消息:

资产/fonts/DIN/DIN\u替换\u粗体\u 1-webfont。ttf输入/~/css加载器?{“最小化”:false,“源映射”:false}/~/vue加载程序/库/样式编译器?{“vue”:true,“id”:“data-v-0312694b”,“scoped”:true,“hasInlineConfig”:false}/~/sass加载程序/lib/loader。js?{“includePaths”:[“/src/assets/scss”],“data”:“@import/”base.scss/”;“,“sourceMap”:false}/~/vue加载程序/库/选择器。js?类型=样式

一些代码和层次结构:

/src
    /assets
        /fonts
            /DIN
                din_alternate_bold_1-webfont.ttf
        /scss
            /base
                _typography.scss
            base.scss      

基础scss

@import'基础/排版'

_印刷术。scss

$font_path: '~assets/fonts/';
@font-face {
    font-family: "DinAltBold";
    src: url($font_path + "DIN/din_alternate_bold_1-webfont.ttf");
}

构建/utils。js

exports.cssLoaders = function (options) {
  options = options || {}

  var cssLoader = {
    loader: 'css-loader',
    options: {
      minimize: process.env.NODE_ENV === 'production',
      sourceMap: options.sourceMap
    }
  }

  // generate loader string to be used with extract text plugin
  function generateLoaders (loader, loaderOptions) {
    var loaders = [cssLoader]
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }

    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader'
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
  return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass', {
          includePaths: ['./src/assets/scss'],
          data: '@import "base.scss";'
        }),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }
}

共有1个答案

毋城
2023-03-14

不要对相对路径使用tilde~。这指向节点\u modules文件夹。因此,您必须选择:

  1. 使用$font\u路径:'..//字体/' 如@highFlyingSmurfs或

我从Vue CLI使用的sass loader GitHub页面获得了此信息。

 类似资料:
  • 问题内容: 我的node_modules文件夹中的字体很棒,因此我尝试将其导入到主.scss文件中,如下所示: 但是Webpack捆绑编译失败,告诉我 因为font-awesome.scss文件引用了相对路径’../fonts/’。 如何告诉scss \ webpack @import另一个文件,并使用该文件的文件夹作为主文件夹,以便其相对路径按预期工作? 问题答案: 在SCSS \ SASS中似

  • 当我从JavaFXapplication类调用WindowController类的loadFXMLItemsAgain()方法时,绝对路径是正确的,但我在WindowControllerTest(JUnit)中也这样做了,它导致基本模块.../DeliveryTool/...正在切换到.../DeliveryTool/DeliveryTool/...从而导致错误。 我只希望绝对路径与JavaFXA

  • 将一个旧的ERP系统迁移到JPMS是一个很大的问题(Java11Eclipse找到了自动模块,Maven没有),所以我决定首先尝试用Java11替换Java8,但通过不引入任何模块信息来保持类路径上的所有内容。java文件。这实际上进行得相当顺利;Maven编译这个程序没有问题,生成的应用程序也从命令行启动。 但当我将Maven项目导入Eclipse2019-03时,它抱怨a.o.java。xml

  • 我有一个用于网站的docker compose文件,其中包括一系列用于各种目的的其他容器,包括一个mysql数据库,该数据库将具有持久性数据。此时,compose文件指定了数据的相对路径,例如: 以及文件夹结构: 这意味着在任何时候,我都可以通过复制整个文件夹并运行docker-compose up将整个站点(包括持久内容)移动到另一台服务器。 但是阅读有关docker卷的文章,听起来它是首选方法

  • 而且,如果我添加这样的内容: 单击它,我将正确地发送到,它显示中的内容。 这一切都按预期进行,而且非常完美。 我在这里做错了什么?我需要重写请求路径吗?

  • 我试图添加顺风到vue项目,为了做到这一点,我遵循以下步骤: vue版本 创建项目 安装顺风 在以下位置创建css文件: 将以下内容复制到 将以下行添加到main中。js 执行 并显示以下消息 无法解析加载程序:sass加载程序您可能需要安装它。 安装sass加载器 并出现以下错误: 我解决了这个问题: 再次运行服务器,但是视图看起来没有顺风css。 有什么方法正确安装顺风与sass和vue4?