在/config/initializers/mime_types.rb
中定义了Rails 5应用程序
Mime::Type.register "image/svg+xml", :svg
和路由包含对svg的调用
resources :markeradhocs do
member do
get :svg, format: :svg
end
end
控制器动作,状态
def svg
respond_to do |format|
format.svg { render inline: svg}
end
end
但是,遇到了一些障碍。
1 -在一个集合中,svg_markeradhoc_path(content.markeradhoc)
渲染为纯文本
/markeradhocs/2/svg
和 2 通过控制器操作localhost:3000/markeradhocs/2/svg
调用对象会返回错误
ActionController::UnknownFormat in MarkeradhocsController#svg
用于svg
操作的response_to块。
SVG如何内联渲染?
答案 0 :(得分:1)
尝试
def svg
svg = 'svg here'
respond_to do |format|
format.svg { render inline: svg}
end
end
请确保在xml namespace (xmlns)
标签中包含svg
,否则浏览器只会将内容呈现为XML
并更新
svg_markeradhoc_path(content.markeradhoc)
使用
image_tag(svg_markeradhoc_path(content.markeradhoc, format: :svg))