在Rails 3.2.15中出现image_tag的绝对路径

时间:2014-08-04 15:43:43

标签: ruby-on-rails asset-pipeline mailer

我在Rails邮件程序中指定图像的绝对路径时遇到了很多麻烦。我已经看了很多如何做到这一点的例子,没有任何对我有用。

这是我目前在development.rb文件中的内容:

  config.action_mailer.default_url_options = { :host => ENV['DEV_HOST_URL'] }

  /* Added the following 2 lines to attempt to get direct URL */
  config.action_controller.asset_host = 'http://localhost:3000'
  config.action_mailer.asset_host = config.action_controller.asset_host

  config.assets.compress = false

  config.serve_static_assets = false

  config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/

  # Expands the lines which load the assets
  config.assets.debug = true

DEV_HOST_URL在我的环境变量中定义:

DEV_HOST_URL: "0.0.0.0:3000"

我尝试在邮件程序布局文件中引用图像,如下所示:

<%= image_tag("logo.png", :class=>"logo_icon" ) %>

当我检查生成的电子邮件中的元素时,我得到以下内容:

<img alt="logo" src="https://ci6.googleusercontent.com/proxy/LQ9_UbICRgtYrLdHWTYSCZzpvyyqEPa8zUTd1OjWkQZQCgnb5YdOQpbghkTKOqBF1miTwxYJYHNdriZh5de4XW161GU_8jvmNN2D3KU=s0-d-e1-ft#http://localhost:3000/assets/logo.png" style="width:50px;border:1px solid #ccc;min-height:20px;width:20px;border:none">

但是,如果我转到以下链接,我不会得到破碎的图像:

http://localhost:3000/assets/logo.png

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这可能应该是显而易见的,但一开始我不是 - Gmail不会加载本地图片。当我将代码推送到制作时,我能够看到正确的图像!