使用Css中的base64 URL工作在Rails中

时间:2013-09-24 20:02:43

标签: ruby-on-rails asset-pipeline

我正在尝试从VideoJS自定义css。您可以在此处查看默认css:http://designer.videojs.com/

请注意,此css对图像使用base64网址

background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;

当我将这个CSS复制并粘贴到我的rails项目中并在我的本地机器上启动时,一切都很好,除了这些图像而不是我看到的正方形。我认为是因为rails默认情况下不知道如何处理这种格式。

我如何理解上面的一行?

1 个答案:

答案 0 :(得分:0)

可能是那里的网址没有像Rails那样需要编码。执行此操作的典型方法是使用Rails中的asset_data_uri帮助程序(如果在文件上使用.erb预处理程序)或使用sprockets中的asset-data-url帮助程序。

来自sprockets的asset-data-url($relative-asset-path)帮助程序:返回指定路径上对Base64编码资产的url引用。例如:asset-data-url("rails.png")变为url(data:image/png;base64,iVBORw0K...)请参见此处:https://github.com/rails/sass-rails

如果您可以使用这种方法并指向真实资产,那么Rails可能会更好地获得base64编码资产。