美文网首页
【Rails Asset Pipeline】生产环境下image

【Rails Asset Pipeline】生产环境下image

作者: hjiangwen | 来源:发表于2017-11-23 21:11 被阅读21次

问题

# 开发环境
<%= image_tag "icons/rails" %>
# => <img src="http://xxx-d07df70d4d655...a3d.jpg">

在开发环境下很正常,但是部署到服务器上,就出现问题了。

# 生产环境
<%= image_tag "icons/rails" %> 
# => <img src="http://xxx.jpg">

过程

  1. 一开始看到网站没有显示图片,但是css和js文件是有digested url的,所以asset pipeline设置是没问题的。
  2. 然后再去检查资源编译是否成功,在/path/to/rails_app/public/assets/目录下也有处理过的图片资源。那么问题就定位在image_tagimage_url方法上。
  3. image_urlActionView::Helpers::AssetUrlHelper模块中定义,ActionView::Baseinclude了该模块,因此我们可以实例化一个ActionView::Base对象,在控制台上测试这个方便些。在服务器上的Rails控制台测试才知道,要加上后缀名才能生成正确的digested url
> ActionView::Base.new.image_url('common_header')
=> "/images/common_header"
> ActionView::Base.new.image_url('common_header.jpg')
 => "/assets/common_header-4187405b...32b.jpg"

解决办法

因此,解决办法就是修改所有调用image_url()方法的参数,都带上相应图片文件的后缀名。

相关文章

网友评论

      本文标题:【Rails Asset Pipeline】生产环境下image

      本文链接:https://www.haomeiwen.com/subject/nqstbxtx.html