使用Asset Pipeline如何在Javascript中提供图像?

时间:2012-09-08 16:10:57

标签: javascript jquery ruby-on-rails ruby-on-rails-3 asset-pipeline

我的资产/ javascript中有以下js

jQuery ->
  if $('.pagination').length
    $(window).scroll ->
      url = $('.pagination .next_page').attr('href')
      if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
        $('.pagination').html('<img src="images/spinner.gif" />')
        $.getScript(url)
    $(window).scroll()

这里我正在调用一个微调器动画,但是没有在localhost上获取。

No route matches [GET] "/images/spinner.gif"

我已经跑了

rake assets:precompile:all RAILS_ENV=development

我的图像被正确放置在资源/图像中(并在公共场合)所以这让我觉得我调用这个图像的方式一定是错的。

1 个答案:

答案 0 :(得分:1)

首先阅读rails asset pipeline并阅读developementproduction提供资产的方式之间的区别,这有助于您了解资产的投放方式

如果您将一个erb扩展名添加到JavaScript资源,使其成为application.js.erb之类的东西,那么您可以在JavaScript代码中使用asset_path助手:

   jQuery ->
  if $('.pagination').length
    $(window).scroll ->
      url = $('.pagination .next_page').attr('href')
      if url && $(window).scrollTop() > $(document).height() - $(window).height() - 50
        $('.pagination').html('<%= asset_path('logo.png') %>')
        $.getScript(url)
    $(window).scroll()