我有一个应用程序,我正在预编译要部署到Heroku的资产。我正在使用gem,它使用了一些内部图像。我跑了。
RAILS_ENV=production bundle exec rake assets:precompile
图像被编译,实际上我可以在public/assets/jquery.raty/
目录中看到它们(它们应该在哪里)。 E.g。
myapp/public/assets/jquery.raty/star-on-4db6f75f3608bbd77fa4bc3959097c33.png
问题是gem的javascript无法找到图像,因为它在内部引用它们()。所以,我更改了配置,使用<%= asset_path“filename”%>添加图像。 (我将文件更改为.js.erb
)。本地工作正常(因为我没有在开发中预编译),但在部署到heroku后,图像被引用为
/assets/jquery.raty/star-on.png
没有md5指纹。
有人知道我做错了什么?或者在预编制宝石资产时我会遗漏一些东西?
感谢。
答案 0 :(得分:3)
有关信息,我必须执行以下操作才能使其正常工作:
$('#star').raty({
starOn: '<%= image_path('star-on.png') %>',
starOff: '<%= image_path('star-off.png') %>',
path: '',
scoreName: 'star',
space: true
});
答案 1 :(得分:0)
好吧,似乎asset_path
没有使用图像的指纹。我不得不使用image_path
并进行一些调整以使其与库一起使用。
答案 2 :(得分:0)
这种方式对我有用
$(this).raty({
scoreName: "seller_rating",
starOn: '<%= asset_url 'star-repassa-on.png' %>',
starOff: '<%= asset_path 'star-repassa-off.png' %>',
path: '',
readOnly: true,
score: function () {
return $(this).attr('data-score');
}
})