星级图像未部署到 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的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4图像未在heroku上加载

不显示生产星级(heroku)

Next.js 公共图像未在生产构建中显示

将 Rails 应用程序部署到 Heroku 后,不显示 JQuery 函数中的图像

无法使用 Heroku 将图像上传到 Cloudinary

Heroku Rails 4 静态背景图片未部署