Django - New fonts?

前端 未结 2 1525
慢半拍i
慢半拍i 2020-12-14 02:08

How do I install new fonts with Django? There is no mention of this in the documentations.

I have my fonts installed in the static folder as such fonts/abc.ttf

相关标签:
2条回答
  • 2020-12-14 02:53

    For the directory structure like so,

    -- static
     |--fonts
     | |--abc.ttf
     |
     |--css
       |-- main.css
    

    In the main.css, you should add.

    @font-face {
      font-family: 'abc';
      src: local('Abc'),
           url('../static/fonts/abc.ttf') format("truetype");
    }
    

    You can't use {% static 'filename' %} inside a css file, since it will not be rendered by the django templating engine.

    Also, if you want you can add the following in the <head> section of base.html, and it will render a fully qualified path for static assets:

    <style>
      @font-face {
        font-family: 'abc';
        src: local('Abc'),
             url('{% static 'fonts/abc.ttf' %} format("truetype")');
      }
    </style>
    

    Edit: Fixed the use of local and also removed the preference around location of style tag in html.

    0 讨论(0)
  • 2020-12-14 02:58

    I am using this option to avoid absolute path and/or css in html template:

    @font-face {
        font-family: 'HKGrotesk';
        font-style: normal;
        font-weight: bold;
        src: local('HKGrotesk'), url('/static/fonts/hk-grotesk/HKGrotesk-SemiBoldLegacy.otf') format('opentype');
    }
    
    0 讨论(0)
提交回复
热议问题