Ratyrate星没有加载生产(heroku)

因此,通过添加,我已经开发了ratyrate就可以了

 false %> 

对我的观点来说。 在此之前,只有在直接访问url或刷新页面时才会加载星标。

现在,当我在heroku上部署我的应用程序时,我遇到了完全相同的问题(星星在通过链接访问页面时没有加载)!

我希望这是足够的信息(很高兴提供更多),并且有人在面对此之前/有任何想法! 谢谢!

解决了 – 看答案

所以问题是我忘了运行rake assets:precompile 。 问题中提到的发展解决方案应该有效。

<%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %>到视图中的头部(似乎运行得更快)或正文标记。

还要将Rails.application.config.assets.precompile += %w( ratyrate.js )config / initializers / assets.rb

然后确保你运行rake assets:precompile以避免看起来像我一样愚蠢!

希望这有助于某人:)

我修复它的方法:

jquery.raty.js

jquery.raty.js重命名为jquery.raty.js.erb并将图像选项替换为asset_path,例如:

cancelOff : 'cancel-off.png'

会变成

 cancelOff : '<%= asset_path('cancel-off.png') %>' 

raty_helper.rb

我已经将rating_for方法从raty helper移动到我的一个帮助文件中,我不得不重写一些事情,比如不允许用户评价自己没有开箱即用。

我在这个文件中所做的更改:

 star_path = options[:star_path] || '' star_on = options[:star_on] || image_path('star-on.png') star_off = options[:star_off] || image_path('star-off.png') star_half = options[:star_half] || image_path('star-half.png') cancel_on = options[:cancel_on] || image_path('cancel-on.png') cancel_off = options[:cancel_off] || image_path('cancel-off.png') 

基本上我删除了/在每个图像名称之前,它是例如:

 star_on = options[:star_on] || image_path('/star-on.png') 

现在我可以推送到heroku,它可以按预期工作,而无需在我的本地计算机上运行资产预编译并将其全部推送到heroku。

发生这种情况是因为图像位置未引用资产管道。 我不得不创建一个新的帮助文件来覆盖rating_for方法以从资产管道中提取图像。

  1. config / initializers中创建一个新的帮助文件( raty_helper.rb
  2. 将“module RatyHelper”添加到新文件的第1行
  3. 将第2行至第144行从https://github.com/wazery/ratyrate/blob/master/lib/ratyrate/helpers.rb复制到您的新帮助程序中。