テンプレートエンジンとしてsmartyを使用しています。画像ファイル パス {$filepath|urlencode} をエスケープする必要があります。問題は、空白が「+」に変換され、サーバー上で画像に到達できないことです: %20 が機能し、正しくエスケープする方法私の進路 ?編集:より正確には、Facebookの共有リンクを使用します
私はFacebookの共有をそのまま使用していますが、共有時に画像が表示されません:
`<a href="facebook.com/dialog/feed?app_id={$fbappid}&link={$mainsite|escape:'url'}{$someurl|urlencode}&picture={$mainsite|escape:'url'}{$picture()|escape:"url"}&name={$somename}&description=Join%20Us%21 &redirect_uri={$mainsite|escape:'url'}{$some|urlencode}" onclick="window.open(this.href);return false;"></a>`
最終的なコードは、私の特定の使用法では次のようになります。
<a href="http://www.facebook.com/dialog/feed?app_id=...&link=http%3A%2F%2Fmysite.org%2Findex.php%3Fpage%3Dcampaign%26campaign_id%3D18&picture=http%3A%2F%2Fmysite.org%2Ffiles%2Fcampaign%2Fimage%2Foriginals%2F18%2FSans+titre-3.jpg&name=Some text "Text d'Text", Text&description=Rejoignez%20la%20campagne%21&redirect_uri=http%3A%2F%2Fmysite.org%2Findex.php%3Fpage%3Dcampaign%26campaign_id%3D18"onclick="window.open(this.href);return false;">
同じサイトで、すべての facebook 共有リンクが完全に機能し、画像がうまく表示されます。その特定の画像のリンクが機能していないと思った理由