0

如您所知,您可以将多个 CSS 文件压缩为一个(或 JS 文件)。我想知道是否可以将多个 SVG 压缩到一个外部文件,所以服务器只发出一个请求

基本上 SVG 文件只是 XML 文本,所以理论上是可能的,但是有一个问题是如何在不同的地方渲染其中的几个图像

我是在想

4

2 回答 2

1

检查这个问题的答案,它描述了如何配置 Asset Pipeline 将管理的文件类型:Using fonts with Rails Asset Pipeline (尽管标题如此,但它不仅适用于字体)。

于 2012-12-04T14:43:35.100 回答
0

谢谢回答,但最后我最终这样做了:

在我的情况下,我想使用我的 SVG 作为 div 标签的背景图像,所以我不需要预编译 SVG,我只是将压缩格式直接放到background-image: url('here')

所以对于多个SVG背景:

width: 600px:
height: 400px:
background-image: url('data:image/svg+xml ...first svg '), url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8IS0tIENyZWF0ZWQgd2l0aCBTVkctZWRpdCAtIGh0dHA6Ly9zdmctZWRpdC5nb29nbGVjb2RlLmNvbS8gLS0+CgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwb2x5bGluZSBpZD0ic3ZnXzMiIHBvaW50cz0iNTM4LjUsMzMzLjU2OTU2NDgxOTMzNTk0IDMyMi4yNSwyNzguMjg0NzgyNDA5NjY3OTcgMTA2LDIyMyAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSI1IiBmaWxsPSJub25lIi8+CiAgPGVsbGlwc2UgZmlsbD0iI0ZGMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjUiIGN4PSIzNDMiIGN5PSIxNzAiIGlkPSJzdmdfMSIgcng9IjE0MCIgcnk9IjEwNSIvPgogPC9nPgo8L3N2Zz4=')

在这里检查: http: //codepen.io/equivalent/full/ymefJ

原始 svg 格式:

<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <g>
  <title>Layer 1</title>
  <polyline fill="none" stroke-width="5" stroke="#000000" points="538.5,333.56956481933594 322.25,278.28478240966797 106,223 " id="svg_3"/>
  <ellipse transform="translate(-402 -120)" ry="105" rx="140" id="svg_1" cy="290" cx="745" stroke-width="5" stroke="#000000" fill="#FF0000"/>
 </g>
</svg>

编辑器:http ://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html

我相信 汤姆哈里森回答中的链接是关于某些事情的,从我所看到的情况来看它可能会起作用,但我自己并没有尝试过。因此,如果您想真正使用资产管道预编译 SVG,我鼓励您使用这种策略。

于 2012-12-20T10:17:58.530 回答