2016-11-30 8 views
1

Amazon S3でイメージストアを取得するHootsuiteの問題に直面しているので、og:imageタグで「フォールバック」イメージを追加します。 (のは、それは別の日のためだ、ここではS3の問題を無視してみましょう。) 画像は私のHerokuの上と全くイメージが特に指定していない記事にローカルに保存されているが、次のように私は正常に使用します。Rails:アセットパイプラインハッシュURLを使用したog:imageの作成

<%= image_tag "fallback/my-fallback-image.jpg" %> 

をいくつかの理由しかし、Hootsuiteのアルゴリズムはあまりにも愚かなので、og:imageを追加したいと思います。

アプリケーションのレイアウトがそうようタグを検索:

<%= yield :og_image %> 

私はそうのようなヘルパー追加しました:

<%= provide(:og_image, og_image(image_url("/fallback/my-fallback-image.jpg"))) %> 
:鑑み

def og_image(url) 
    content_for(:og_image, tag(:meta, :property => "og:image", :content => url)) if url 
end 

を、私はそうのような画像を追加します

image_tag(上に示したとおり)はうまく動作し、ハッシュを含んでいますが、og:imageタグは次のように終わる:

<meta property="og:image" content="http://www.example.com/images/%2Ffallback%2Fmy-fallback-image.jpg" /> 

そうではないだけで台無しにスラッシュを行い、それはまた、ハッシュを忘れました。

私は幾分ヘロクを使用して制限されており、アセットパイプラインに固執したいと思います。私はこれをどのようにするべきですか?

ありがとうございます!

答えて

0

パスにスラッシュを入れないでください。これを追加すると、レールは絶対パスを必要とするものとみなします。

image_url("fallback/my-fallback-image.jpg") 
+0

奇妙な、これは私のために働いた。とにかく、あなたは解決策を見つけることができてうれしいです。 – tegon

0

わかりました。 url_to_imageはハッシュとの適切な完全なURLを提供していますので、私はOGを推測している直接Facebook上で投稿するとき

provide(:og_image, og_image(url_to_image("fallback/my-fallback-image.jpg"))) 

私は今、特定の記事の画像間の代替画像を選択することができます。意図したように、画像プロパティが動作します。残念ながら、Hootsuiteアルゴリズムはまだ失敗します。多分私は別のソーシャルメディアサービスを試してみるつもりです。

+0

私はこれについて興味があり、 'url_to_image'が' image_url'のエイリアスであることを知りました。http://api.rubyonrails.org/classes/ActionView/Helpers/AssetUrlHelper.html#method-i-url_to_image – tegon

関連する問題