Loading in local fonts with webpack 2 and the vue-cli

前端 未结 2 1349
[愿得一人]
[愿得一人] 2021-01-02 11:48

I\'m using the vue-cli webpack template and I\'m trying to load in local fonts in my project. I\'m having trouble getting the path to my fonts correct. How should my path lo

相关标签:
2条回答
  • 2021-01-02 12:13

    I import my fonts this way:

    $font_path: '~@/assets/fonts/';
    
    // *********** //
    // SOURCE SANS //
    // ITALIC
    @font-face{
      font-family    : 'Source Sans Pro';
      src            : url($font_path +'SourceSansPro-Italic.eot'); /* IE9 Compat; Modes */
      src            : url($font_path +'SourceSansPro-Italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Italic.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Italic.woff') format('woff'); /* Modern Browsers */
      font-style     : italic, oblique;
      font-weight    : 400;
      text-rendering : optimizeLegibility;
    }
    // REGULAR
    @font-face{
      font-family    : 'Source Sans Pro';
      src            : url($font_path +'SourceSansPro-Regular.eot'); /* IE9 Compat; Modes */
      src            : url($font_path +'SourceSansPro-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Regular.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Regular.woff') format('woff'); /* Modern Browsers */
      font-style     : normal;
      font-weight    : 400;
      text-rendering : optimizeLegibility;
    }
    // SEMI BOLD
    @font-face{
      font-family    : 'Source Sans Pro';
      src            : url($font_path +'SourceSansPro-Semibold.eot'); /* IE9 Compat; Modes */
      src            : url($font_path +'SourceSansPro-Semibold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url($font_path +'SourceSansPro-Semibold.woff2') format('woff2'), /* Modern Browsers */ url($font_path +'SourceSansPro-Semibold.woff') format('woff'); /* Modern Browsers */
      font-style     : normal;
      font-weight    : 600;
      text-rendering : optimizeLegibility;
    }
    // Use "font-family: $source_sans_pro" in your code.
    $source_sans_pro : 'Source Sans Pro', sans-serif;
    // [END] SOURCE SANS //
    // ***************** //
    

    All my fonts are located in src/assets/fonts/

    My webpack.base.conf file contains this loader:

     {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      },
    
    0 讨论(0)
  • 2021-01-02 12:34

    In the vuejs project I am working on,

    This one did not worked:

    @font-face {
       font-family: 'name-of-choice';
       src: url("~@/assets/<location-to-your-font-file>/font-file-name.ttf") format('font-type');
    }
    

    This worked:

    @font-face {
       font-family: 'name-of-choice';
       src: url(~@/assets/<location-to-your-font-file>/font-file-name.ttf) format('font-type');
    }
    

    And I've observed that if we use the solution without double quote for one single time and then add double quotes, it again works! If anyone know what's happening here, please do answer.

    Solution: Try not enclosing URL String in quotes.

    0 讨论(0)
提交回复
热议问题