我使用
wicked_pdf与rails 3.2.11和ruby 1.9.3从HTML生成PDF并部署到Heroku.
我的pdf.css.scss.erb:
<% app_fullhost = Constants["app_fullhost"] %> @font-face { font-family:'DosisMedium'; font-style:normal; font-weight:500; src: url(<%=app_fullhost%>/app/font/dosis/Dosis-Medium.ttf) format('woff'); } *,body { font-family: "DosisLight",'Times New Roman','Arial',sans-serif; }
其中app_fullhost是开发或生产中的确切主机.
我的pdf格式包括:
%html{:lang => I18n.locale} %head %Meta{:charset => "utf-8"} %title= content_for?(:title) ? yield(:title) : Settings.app_name = wicked_pdf_stylesheet_link_tag "pdf"
在生产中我有
config.assets.precompile +=%w(pdf.css)
这在开发中没有问题,但是在Heroku中,pdf文件不加载所需的字体.我也尝试过不同的解决方案,如在production.rb中添加这些解决方案:
config.assets.paths << "#{Rails.root}/app/assets/fonts" config.assets.precompile += %w(*.svg *.eot *.woff *.ttf) config.assets.precompile += %w(.svg .eot .woff .ttf)
我也试过改变(pdf.css.scss.erb):
@font-face { font-family:'Dosis'; font-style:normal; font-weight:500; src: url('Dosis-Medium.ttf') format('woff'); }
要么
@font-face { font-family:'Dosis'; font-style:normal; font-weight:500; src: url(<%= asset_path('Dosis-Medium.ttf')%>) format('woff'); }
字体是资源/字体,还有在public / app / font / dosis中,Heroku上的url正确地响应:
..//myapp/app/font/dosis/Dosis-Medium.ttf" and ..//myapp/assets/Dosis-Medium.ttf
如何让字体加载到Heroku?