Gravatar – 设置自定义默认头像 – 未显示的头像

我在localhost:3000上的开发环境

我在Gravatar上关注了railscasts剧集。 我正在尝试设置位于资产/图像中的自定义头像图像。

我使用的代码是这样的:

def avatar_url(user) gravatar_id = Digest::MD5.hexdigest(user.email.downcase) default_url = "#{root_url}assets/AwesomeAvatar.png" "http://sofzh.miximages.com/ruby-on-rails/none.jpg?s=100&r=g&d=#{CGI.escape(default_url)}" end 

头像无法加载 。 当我尝试保存图像时出现错误:“失败 – 没有文件”。

我将default_url更改为:

  default_url = "http://localhost:3000/assets/AwesomeAvatar.png" 

当我去这个url时,我看到了头像的图像,但我仍然得到相同的错误,并且头像没有加载。 我也尝试将d设置为: d="http://localhost:3000/assets/AwesomeAvatar.png"d=#{CGI.escape("http://localhost:3000/assets/AwesomeAvatar.png")}但也没有运气的头像加载。

有什么线索错了吗?

谢谢

Gravatar的网站说你指定的默认图像“必须是公开的(例如,不能在内部网上,在本地开发机器上,在HTTP Auth后面或其他防火墙等)。默认图像通过安全扫描以避免恶意内容。 “

您用于默认映像的URL在localhost上的开发环境中托管,因此将失败。 要使其工作,您需要在某个公共位置托管默认图像,并使用该公共URL作为默认值。

看起来您的url有误,请尝试:

 gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}" 

作为参考,这是我的用户帮助:

 module UsersHelper # Returns the Gravatar (http://gravatar.com/) for the given user. def gravatar_for(user, options = { size: 50 }) gravatar_id = Digest::MD5::hexdigest(user.email.downcase) size = options[:size] gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}" image_tag(gravatar_url, alt: user.name, class: "gravatar") end end 

您可以添加选项[:default] = image_tag(“Yourimage.png”)来更改默认图片。

我应该评论你的问题,但我的声誉不允许我。 你试试“gravatar_url =” https://secure.gravatar.com/avatar/# {gravatar_id}“???