如何在Phoenix中设置字体的CORS头?

Pro*_*oGM 2 heroku elixir cors phoenix-framework

我有一个凤凰的应用程序,这应该成为其静态资产(字体,主要是)同时www.domain.comsubdomain.domain.com.

该应用程序托管在heroku上.

如何设置CORS标头?

我找到了这个库,但它似乎不适用于静态资产(我认为).

我试着像这样配置它:

defmodule MyApp.CORS do
  use Corsica.Router

  resource "/fonts/*", origins: ["http://subdomain.domain.com"]
end
Run Code Online (Sandbox Code Playgroud)

但结果标题是:

cache-control:public
content-length:839
content-type:image/svg+xml
date:Sun, 19 Jun 2016 09:40:01 GMT
etag:3AAE04D
server:Cowboy
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 7

您可以使用可选:headers选项Plug.Static并将Access-Control-Allow-Origin标头设置为*.

lib/my_app/endpoint.ex,在plug Plug.Static调用结束时添加以下参数:

headers: %{"Access-Control-Allow-Origin" => "*"}
Run Code Online (Sandbox Code Playgroud)

您的代码应该类似于:

plug Plug.Static,
  at: "/", from: :my_app, gzip: false,
  only: ~w(css fonts images js favicon.ico robots.txt),
  headers: %{"Access-Control-Allow-Origin" => "*"}
Run Code Online (Sandbox Code Playgroud)

请注意,这,如果你想允许比1个域更多的工作(一个域或工作*会的工作),因为我相信你必须动态地计算基于请求的值Origin,对,虽然Plug.Static只允许添加静态标题列表.