Ruby / Rails – 转义uri用于css

前端之家收集整理的这篇文章主要介绍了Ruby / Rails – 转义uri用于css前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的应用程序中,用户上传了一个图像,然后我将其放在S3上.然后使用以下样式将该图像用作div的背景
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://myhost.s3-website-us-east-1.amazonaws.com/27/display/608-(rec’d_021014)_user_image.jpg?1392767029’)no-repeat ;}

解决方法

推荐的方法是使用 ERB::Util的url_encode

在Rails中,url_encode有一个alias u.

div#id { background: url('<%=u creative.url %>') no-repeat;}

猜你在找的Ruby相关文章