Fonts 在Phoenix中使用自定义字体

Fonts 在Phoenix中使用自定义字体,fonts,elixir,phoenix-framework,Fonts,Elixir,Phoenix Framework,我正在尝试在Phoenix应用程序中使用自定义字体。我已经将它们放在priv/static/fonts目录中,并在web/templates/layout/app.html.eex模板中正确创建和加载了css文件,但Phoenix服务器没有为它们提供服务 /Users/Psycho/code/elixir/my_app/ ▾ priv/ ▸ repo/ ▾ static/ ▸ css/ ▾ fonts/ ▾ walsheim/ gt-wal

我正在尝试在Phoenix应用程序中使用自定义字体。我已经将它们放在
priv/static/fonts
目录中,并在
web/templates/layout/app.html.eex
模板中正确创建和加载了css文件,但Phoenix服务器没有为它们提供服务

/Users/Psycho/code/elixir/my_app/
▾ priv/
  ▸ repo/
  ▾ static/
    ▸ css/
    ▾ fonts/
      ▾ walsheim/
          gt-walsheim-light-web.svg
          gt-walsheim-light-web.eot
          gt-walsheim-light-web.ttf
          gt-walsheim-light-web.woff
用于源化字体的css文件:

// my_app/priv/css/fonts.css

@font-face {
    font-family: "Walsheim";
    font-style: normal;
    font-weight: 300;
    src:
        url("/fonts/walsheim/gt-walsheim-light-web.eot?#iefix") format("embedded-opentype"),
        url("/fonts/walsheim/gt-walsheim-light-web.woff") format("woff"),
        url("/fonts/walsheim/gt-walsheim-light-web.ttf") format("truetype"),
        url("/fonts/walsheim/gt-walsheim-light-web.svg#Walsheim") format("svg");
}

好的,找到了解决办法

看起来您必须告诉phoenix要为静态文件提供哪些目录。我进入我的
my_-app/lib/my_-app/endpoint.ex
文件,并更新了
Plug.Static
插件,以提供
字体
文件夹:

defmodule MyApp.Endpoint do
  use Phoenix.Endpoint, otp_app: :my_app

  plug Plug.Static,
    at: "/", from: :my_app, gzip: false,
    only: ~w(css images js fonts favicon.ico robots.txt)

  # Other Stuff ...
end


来源:

完美答案。我会将Phoenix更改为默认包含字体。如果您将字体放在
web/static/assets/fonts
中,您的字体会在早午餐时自动复制到
priv/static/fonts/