[英]Ruby On Rails - Image Tag Issue
我想知道如何在image_tag中指定完整的URL src attibute?
目前我使用:
image_tag(object.team.team_logo, :alt => object.team.name)
並且src attibute被錯誤地轉換為:
http://0.0.0.0:3000/assets/%20http://a.espncdn.com/i/teamlogos/soccer/500/103.png
我嘗試運行rake資產:預編譯&& rake資產:clean_expired但應用程序仍將完整URL視為預編譯資產。
提前致謝!
在將team_logo
值放入數據庫之前,需要正確清理並驗證它們: object.team.team_logo
值的第一個字符是空格。
如果你追蹤image_tag
實現,你會發現它最終調用asset_path
:
def asset_path(source, options = {})
source = source.to_s
return "" unless source.present?
return source if source =~ URI_REGEXP
#...
您在team_logo
有一個前導空格,因此URI_REGEXP
測試失敗,Rails將預先設置資產路徑(並且URL對字符串進行編碼,因此您的空間的%20
表示)。
你應該做一些事情:
team_logo
始終是格式良好的URL。 before_validation
回調以清除傳入的team_logo
值中的任何雜散空格。 team_logo
值並清理它們,您可能需要手動修復或刪除其中的一些。 清理完數據后, image_tag
將按預期工作。
我想你可以剝掉你視圖中那些非常討厭的空白,除非你需要立即修復以防止業務在接下來的五分鍾內失敗,否則不應該這樣做。 即便如此,你還是要清理數據並立即退出“清理視圖中的空白”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.