Django、CSS3和字体:如何加载本地字体文件?

tvokkenx  于 2022-12-01  发布在  Go
关注(0)|答案(1)|浏览(231)

我有一个Django应用<my-app>,我想把一些本地字体文件加载到基本模板<my-app>/templates/<my-app>/base.html中。
例如,在<my-app>/static/<my-app>/fonts/Lato/下,我有几个.ttf文件:

  • Lato-Black.ttf
  • Lato-BlackItalic.ttf
  • Lato-Bold.ttf
  • 等等

<my-app>/static/<my-app>/css/fonts.css中我有:

@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 300;
  src:
  local('Lato-Black') url('../fonts/Lato/Lato-Black.ttf') format('truetype'),
  local('Lato-BlackItalic') url('../fonts/Lato/Lato-BlackItalic.ttf') format('truetype'),
  local('Lato-Bold') url('../fonts/Lato/Lato-Bold.ttf') format('truetype'),
  local('Lato-BoldItalic') url('../fonts/Lato/Lato-BoldItalic.ttf') format('truetype'),
  local('Lato-Hairline') url('../fonts/Lato/Lato-Hairline.ttf') format('truetype'),
  local('Lato-HairlineItalic') url('../fonts/Lato/Lato-HairlineItalic.ttf') format('truetype'),
  local('Lato-Italic') url('../fonts/Lato/Lato-Italic.ttf') format('truetype'),
  local('Lato-Light') url('../fonts/Lato/Lato-Light.ttf') format('truetype'),
  local('Lato-LightItalic') url('../fonts/Lato/Lato-LightItalic.ttf') format('truetype'),
  local('Lato-Regular') url('../fonts/Lato/Lato-Regular.ttf') format('truetype')
  ;

}

因此在base.html中:

{% load static %}
  <link rel="stylesheet" type="text/css" href="{% static '<my-app>/css/fonts.css' %}" />

这不会加载字体,因此我可以像使用Google的api一样使用它们:

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">

那么,我如何修复我的CSS?

67up9zun

67up9zun1#

我知道现在回复已经太迟了,但由于没有人回答这个问题,而且这个问题出现在搜索中,我们需要回答这个问题,以免被其他用户询问。
因此,要解决这个问题,把所有这些字体文件在静态文件夹,并将它们导入css文件,如下所示:

@font-face {
  font-family: Lato;
  font-style: normal;
  font-weight: 300;
  src:
  local('Lato-Black') url('/static/fonts/Lato/Lato-Black.ttf') format('truetype'),

}

相关问题