我在本地主机开发环境:3000
我也跟着上的Gravatar railscasts插曲。 我想设置位于资产/图像我的自定义头像图片。
我使用的代码是这样的:
def avatar_url(user)
gravatar_id = Digest::MD5.hexdigest(user.email.downcase)
default_url = "#{root_url}assets/AwesomeAvatar.png"
"http://gravatar.com/avatar/#{gravatar_id}.png?s=100&r=g&d=#{CGI.escape(default_url)}"
end
头像不加载 。 当我尝试保存图像有一个错误:“失败 - 没有文件”。
我改变DEFAULT_URL到:
default_url = "http://localhost:3000/assets/AwesomeAvatar.png"
当我去这个网址我看到化身的形象,但我仍然得到同样的错误和头像不加载。 我还试图设置d为: d="http://localhost:3000/assets/AwesomeAvatar.png"
和d=#{CGI.escape("http://localhost:3000/assets/AwesomeAvatar.png")}
但具有化身负荷没有运气无论是。
任何线索,什么是错?
谢谢
的Gravatar的网站说,你指定默认的图像“必须是可公开获得的(例如不能在企业内部网,本地开发机器上,后面的HTTP认证或其他一些防火墙等),默认图像通过安全扫描通过,以避免恶意内容。 “
您正在使用您的默认图像的URL托管在本地主机开发环境,这样会失败。 为了使它工作,你需要主机的默认图像地方公共和使用公共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
您可以添加选项[:默认= IMAGE_TAG(“Yourimage.png”)来更改默认的照片。
我应该对你的问题发表评论,但我的名誉不允许我。 你试试用“gravatar_url =” https://secure.gravatar.com/avatar/# {} gravatar_id“???