为什么我的ajax-loader.gif出现路由错误?

时间:2014-05-30 11:00:05

标签: ruby-on-rails jquery-mobile

我有一个基于JQueryMobile的Rails应用程序运行得很好,但我一直看到以下内容显示在日志中,我不知道如何摆脱它:

No route matches [GET] "/assets/images/ajax-loader.gif")

我实际上已经在 /app/assets/images/ajax-loader.gif 中获得了我的ajax-loader。此外,我很确定应用程序不应该尝试访问该文件,因为我在应用程序中也有以下JavaScript:

$(document).bind("mobileinit", function()
  $.mobile.ajaxEnabled = false;
});

我做错了什么?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

这没有错,对文件的请求是通过以下jqm css

进行的
.ui-icon-loading{background:url("images/ajax-loader.gif");background-size:2.875em 2.875em;}

,绝对路径将相对于您当前的jqm css路径请求。因此404。

用于加载Widget,来自jqm官方文档

 It can also be displayed manually for custom loading actions using the $.mobile.loading helper method (See the global method docs).

有两种解决方案。

  1. 相对于jqm css文件夹移动images文件夹。
  2. 更改jqm css中的背景图片网址。
  3. 我会推荐第一个。这将使您升级友好。

答案 1 :(得分:1)

通过在移动样式表中的某处添加以下CSS规则来覆盖jQuery mobile CSS。

我将其直接添加到我的移动清单文件app/assets/stylesheets/mobile.css.scss,位于//= require jquery.mobile-1.4.5.min.css

行的下方
.ui-icon-loading {
  background: image-url('my-custom-ajax-loader.gif') !important;
}

通过使用image-url帮助程序,您可以获得资产管道的所有好处,例如指纹识别和CDN利用率。