Heroku でホストされている Rails プロジェクトがあり、アセットのホスティングを S3 に移動しました。一部のカスタム フォント (icomoon の SVG フォント) を除いて、これはすべてスムーズに進みました。それらは機能していません。Web ソースを表示すると、S3 バケットが表示されないことがわかります。
@font-face{font-family:'Starter-Icons';src:url(https://.s3.amazonaws.com/fonts/Starter-Icons.eot);src:url(https://.s3.amazonaws.com/fonts/Starter-Icons.eot?#iefix)
など。ただし、S3 でホストされている他のアセット (画像、スタイルシートなど) には、適切なバケット名が含まれています。
私のfont-face
宣言は .less ファイルにあります (これは .less.erb ファイルである必要はありませんか?)
@font-face {
font-family: 'Starter-Icons';
src:font-url("Starter-Icons.eot");
src:font-url("Starter-Icons.eot?#iefix") format('embedded-opentype'),
font-url("Starter-Icons.woff") format('woff'),
font-url("Starter-Icons.ttf") format('truetype'),
font-url("Starter-Icons.svg#Starter-Icons") format('svg');
font-weight: normal;
font-style: normal;
}
私のフォントはすべて にあります/app/assets/fonts
。ここで受け入れられた回答の手順に従いましたが、バケット名がフォントに表示されないという事実は、それが別の問題であると私に信じさせます。
編集
これにはasset_sync gemを使用しています。その構成は次のとおりです。
if defined?(AssetSync)
AssetSync.configure do |config|
config.fog_provider = 'AWS'
config.fog_directory = 'starterapp'
config.aws_access_key_id = ENV['STARTER_AWS_ACCESS_KEY_ID']
config.aws_secret_access_key = ENV['STARTER_AWS_SECRET_ACCESS_KEY']
# Don't delete files from the store
config.existing_remote_files = 'keep'
# Automatically replace files with their equivalent gzip compressed version
config.gzip_compression = true
end
終わり