星级图像未部署到 Heroku
Posted
技术标签:
【中文标题】星级图像未部署到 Heroku【英文标题】:star rating image not deploying to Heroku 【发布时间】:2018-06-08 14:44:34 【问题描述】:我有一点问题,我正在使用这个插件 jQuery Raty(评级系统),我的资产/图像文件夹中有星形图像,但由于某种原因,图像没有显示。知道可能是什么吗?
我已经运行了 rails assets:precompile
因为我在这里找到了这个答案,但没有骰子。
它在 localhost 上运行良好,路径如下所示:
<script>
$('.review-rating').raty(
readOnly: true,
score: function()
return $(this).attr('data-score');
,
path: '/assets'
);
</script>
<script>
$('.average-review-rating').raty(
readOnly: true,
path: '/assets',
score: function()
return $(this).attr('data-score');
);
</script>
https://imdb-rails-app.herokuapp.com/
【问题讨论】:
【参考方案1】:当你运行命令assets:precompile时,所有的assets都将被编译并在文件名后返回一个MD5哈希,如下所示:
#=> app/assets/images/one-star.png
$ rake assets:precompile
#=> public/assets/one-star-MD5 Hash here.png
这就是为什么当您期望星形图像 URL 看起来像 your-domain.com/assets/one-star.png 时,它根本不起作用
从您的 sn-p 中,我想您正在使用 jQuery Raty 进行评级,因此解决方案是通过使用 Raty 的配置 + Rails 资产帮助器让 Raty 知道您编译的星图
<!-- in your view.html.erb file -->
<script>
$('.review-rating').raty(
readOnly: true,
score: function()
return $(this).attr('data-score');
,
starOn: <%= "#image_path('star-on.png')" %>,
starOff: <%= "#image_path('star-off.png')" %>,
// Do the same with starHalf, cancelOn, cancelOff
);
</script>
这样,你的 Raty 就会知道加载星星图像的正确方法。
您可以阅读有关Raty Options 和Rails's asset helpers 的更多信息
【讨论】:
以上是关于星级图像未部署到 Heroku的主要内容,如果未能解决你的问题,请参考以下文章