Django – New fonts?

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("https://stackoverflow.com/questions/21346045/{% 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.

Leave a Comment