加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby / Rails – 转义uri用于css

发布时间:2020-12-17 04:33:01 所属栏目:百科 来源:网络整理
导读:在我的应用程序中,用户上传了一个图像,然后我将其放在S3上.然后使用以下样式将该图像用作div的背景 div#id { background: url('%= creative.url %') no-repeat;} 创意网址如下所示: http://myhost.s3-website-us-east-1.amazonaws.com/27/display/608-(rec
在我的应用程序中,用户上传了一个图像,然后我将其放在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;}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读