Rails 4字体不适用于生产

时间:2015-08-18 12:17:24

标签: ruby-on-rails-4 asset-pipeline assets font-awesome production

我正在尝试在我的Rails 4应用程序上使用字体Awesome。这些字体在开发方面非常有效,但在生产方面却无法正常工作。

在使用capistrano进行部署时,资源会在服务器上进行预编译。

所有CSS文件,JS(在app / assets / *和vendor / assets / *)正在运行......只有字体不是。

如果我在我的开发机器上运行应用程序作为生产,它可以工作:

RAILS_ENV=production bin/rails s -b 0.0.0.0

只有当我发送到我的生产主机(带有Passenger + Ngnix的VPS)时,字体才能正常工作

我所拥有的是:

# config/initializers/assets.rb

# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path
Rails.application.config.assets.precompile << /\.(?:svg|eot|woff|woff2|ttf)\z/

和...

# config/environments/production.rb
# ...
config.assets.compile = true

广告最后:

# app/assets/stylesheets.css.erb

@font-face {
    font-family: 'FontAwesome';
    src: url("<%= font_path('Font-Awesome/fontawesome-webfont.eot') %>?v=4.3.0");
    src: url("<%= font_path('Font-Awesome/fontawesome-webfont.eot') %>?#iefix&v=4.3.0") format('embedded-opentype'),
    url("<%= font_path('Font-Awesome/fontawesome-webfont.woff2') %>?v=4.3.0") format('woff2'),
    url("<%= font_path('Font-Awesome/fontawesome-webfont.woff') %>?v=4.3.0") format('woff'),
    url("<%= font_path('Font-Awesome/fontawesome-webfont.ttf') %>?v=4.3.0") format('truetype'),
    url("<%= font_path('Font-Awesome/fontawesome-webfont.svg') %>?v=4.3.0#fontawesomeregular") format('svg');
    font-weight: normal;
    font-style: normal;
 }

字体位于:vendor/assets/fonts/Font-Awesome/fontawesome-*

我不明白的是,在开发它可以工作,我在Heroku上有另一个应用程序,具有相同的配置,字体效果很好。

如果我使用SSH访问我的服务器并运行ls my_app/public/assets,我可以预先编译所有资产(css,javascripts和fons)。

我缺少什么?

1 个答案:

答案 0 :(得分:1)

我尝试了很多解决方案,但没有任何效果......

唯一有效的是移动文件夹&#34; fonts&#34;从vendor/assetsapp/assets

据我所知,这对我来说没有意义,第三方资产必须转到vendor/assets文件夹。

但是第三个CSS和Javascript文件位于vendor/assets/*并且工作正常。只有不起作用的字体文件。