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方法以从资产管道中提取图像。
- 在config / initializers中创建一个新的帮助文件( raty_helper.rb )
- 将“module RatyHelper”添加到新文件的第1行
- 将第2行至第144行从https://github.com/wazery/ratyrate/blob/master/lib/ratyrate/helpers.rb复制到您的新帮助程序中。