Ratyrate星没有加载生产(heroku)

时间:2015-05-17 19:36:32

标签: jquery ruby-on-rails ruby-on-rails-4 heroku raty

因此,通过添加

,我已经开发了ratyrate就可以了
<%= javascript_include_tag 'ratyrate.js', "data-turbolinks-track" => false %>

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

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

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

已解决 - 请参阅回答

3 个答案:

答案 0 :(得分:5)

所以问题是我忘记了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以避免像我一样傻!

希望这有助于某人:)

答案 1 :(得分:1)

我的解决方法:

<强> 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。

答案 2 :(得分:0)

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

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