Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 在rails 4中嵌入SVG图像中的字体_Css_Ruby On Rails 4_Svg_Fonts_Asset Pipeline - Fatal编程技术网

Css 在rails 4中嵌入SVG图像中的字体

Css 在rails 4中嵌入SVG图像中的字体,css,ruby-on-rails-4,svg,fonts,asset-pipeline,Css,Ruby On Rails 4,Svg,Fonts,Asset Pipeline,我使用的是Rails 4,并且有一个引用外部字体的SVG图像。以下是文件结构: app | --- assets | --- images | --- myImage.svg | --- MYRIADPRO-BOLDCOND.woff 应用程序 | ---资产 |---图像 |---myImage.svg |---MYRIADPRO-BOLDCOND.woff 我正在引用SVG文件中的字体,如

我使用的是Rails 4,并且有一个引用外部字体的SVG图像。以下是文件结构:

app | --- assets | --- images | --- myImage.svg | --- MYRIADPRO-BOLDCOND.woff 应用程序 | ---资产 |---图像 |---myImage.svg |---MYRIADPRO-BOLDCOND.woff 我正在引用SVG文件中的字体,如下所示:

当我运行应用程序时,会找到图像,但相关字体不是,因此图像看起来很奇怪。没有抛出任何错误。我试着把这些文件放到public/image中,把字体放在自己的/fonts文件夹中,进行各种混合和匹配,但都没有用。当我在Chrome中直接查看svg时,它的字体是正确的


在rails 4中,在SVG中嵌入字体的适当方式是什么

您是如何引用SVG的?它是一个
?如果是这样,浏览器安全限制将阻止SVG引用其他文件。SVG必须是自包含的。您应该能够通过将字体嵌入为数据URL来实现这一点。

解决方案

使用对象标记调用SVG允许调用外部字体文件

因此,在我的html.erb文件中,我引用了对象标记中的图像:


SVG文件,我的文件结构与我在问题中提到的相同

我用的是img标签。如何将字体嵌入为数据URL?我的字体文件相对于rails中的图像应该在哪里?谢谢你的帮助我才意识到。。我很困惑,因为我能够在另一个不使用Rails的网站上引用SVG中的字体文件。但我刚刚意识到我在那里使用了对象标记。我会试试看。是的,
应该会更好。但为了回答您的问题,请在这里搜索“字体数据uri”,如果您需要,您将获得大量关于如何执行此操作的答案。