微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐