Reputation: 7390
I can't load this font for a CORS Policy.
Folder: app/assets/fonts/Inter-UI.var.woff2
<%=preload_link_tag("Inter-UI.var.woff2", as:'font', crossorigin: "anonymous")%>
Error:
Access to font at 'http://localhost:3000/assets/Inter-UI.var-e2e323d19d24946c4d481135af27ba00f3266aa9d4abe4262e97088feccb6ca4.woff2' from origin 'http://0.0.0.0:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Response HTTP status code
If I go directly to http://localhost:3000/assets/Inter-UI.var-e2e323d19d24946c4d481135af27ba00f3266aa9d4abe4262e97088feccb6ca4.woff2 I can download the file successfully.
I have already tried with rack-cors gem, but it's not working
config/environments/development.rb
Rails.application.configure do
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => :any
end
end
application.rb
config.assets.precompile << /\.(?:svg|eot|woff|ttf|woff2)$/
assets.rb
Rails.application.config.assets.paths << Rails.root.join("app", "assets", "fonts")
CSS
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-weight: 400;
font-display: swap;
unicode-range: U+000-5FF;
src: font-url("/assets/fonts/Inter-UI.var.woff2") format("woff2-variations"), font-url("/assets/fonts/Inter-UI-Italic.woff2") format("woff2"), font-url("/assets/fonts/Inter-UI-Italic.woff") format("woff"); }
Upvotes: 4
Views: 2354
Reputation: 1598
Try adding this to application.rb
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|ttf|woff2)$/
and update
Rails.application.configure do
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => :any
end
end
end
with
Rails.application.configure do
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => :any
end
end
allow do
origins "*"
resource "/assets/*", methods: :get, headers: :any
end
end
and you can simply use
<%= preload_link_tag("Inter-UI.var.woff2") %>
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-weight: 400;
font-display: swap;
unicode-range: U+000-5FF;
src: font_url("Inter-UI.var.woff2") format("woff2-variations"),
font_url("Inter-UI-Italic.woff2") format("woff2"),
font_url("Inter-UI-Italic.woff") format("woff");
}
and if you are using fonts.css.erb
inside the stylesheets
do
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-weight: 400;
font-display: swap;
unicode-range: U+000-5FF;
src: url(<%= asset_path "Inter-UI.var.woff2" %>) format("woff2-variations"),
url(<%= asset_path "Inter-UI-Italic.woff2" %>) format("woff2"),
url(<%= asset_path "Inter-UI-Italic.woff" %>) format("woff");
}
and do rake assets:precompile
Upvotes: 4