我有一个Rails项目,在Heroku上托管,我刚搬到托管我的资产到S3。除了一些自定义字体(来自icomoon的SVG字体)之外,这一切都很流畅。他们不工作,当我查看我的网页源,我可以看到我的S3存储不会显示出来:SVG字体与Rails资产管道和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
。我已经按照the accepted answer here中的步骤操作,但事实是我的存储桶名称没有显示出字体,这让我相信这是一个不同的问题。
编辑
我使用这个asset_sync宝石,它的配置低于:
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
末
编译之后,您是否使用任何gem将资源置于S3中?你可以附加它的配置吗?文件是在桶里还是根本没有? –
是的,更新问题。这些文件位于存储桶中(但它们不在子文件夹中 - 所有字体,css,js都只在我在config中指定的主存储区中) – jbnunn
,如果您使用asset-url helper(不确定名称)? –