在我的應用程序中,用戶上傳了一張圖片,然後我把它放在S3上。該圖像被後來作爲一個div的背景下,使用下面的風格Ruby/Rails - 用於css的越獄uri
div#id { background: url('<%= creative.url %>') no-repeat;}
廣告網址類似於:
http://myhost.s3-website-us-east-1.amazonaws.com/27/display/608-(rec'd_021014)_user_image.jpg?1392767029
如上所述,問題是creative.url可以包含特殊字符(引號,parens等),並根據http://www.w3.org/TR/CSS2/syndata.html#value-def-uri,它需要被轉義。
我希望有一些方便的ruby/rails函數可以爲我處理這個問題。
如果沒有,那麼我可能需要做一些正則表達式替換 - 看起來像什麼?
更新:
鄉親使用URI編碼功能建議 - 我沒有嘗試,但URL字符串在ERB模板直接使用,因此這將編碼這是行不通的,在整個事情CSS的URL功能 - 即,我會像(上面):
div#id {background: url('http%3A%2F%2Fmyhost.s3-website-us-east-1.amazonaws.com%2F27%2Fdisplay%2F608-(rec%27d_021014)_user_image.jpg%3F1392767029') no-repeat;}