我的应用中的文章包含字段“body”,其中包含带有html的文本。例如:
<div class ='skill_pic'>
<img src = "/assets/images/picture_1.png">
</div>
在视图中,我将字段“body”称为:
<%= raw @article.body %>
在本地计算机上一切正常,但是当我在生产中部署我的应用程序时,图像显示不正确,浏览器控制台返回404错误。
文章正文中的image_tag可以解决我的问题,我的意思是:
<div class ='skill_pic'>
<%= image_tag('images/picture_1.png') %>
</div>
但是helper raw无法使用html和rails方法转换文本
现在,我认为有三个方向:
答案 0 :(得分:0)
您可以在数据库中存储erb
这样的部分内容:
<div class ='skill_pic'>
<%= image_tag('images/picture_1.png') %>
</div>
在视图中使用ERB
渲染它们:
<%= raw ERB.new(@article.body).result(binding) %>
答案 1 :(得分:0)
我想你想做某种迷你CMS。小心不要让用户填写数据库中的数据。你得到了非常糟糕的安全问题。如果用户可以编辑你的html,你最好使用某种模板引擎,如Liquid或markdown。
话虽如此,您应该不要将资产管道用于参考图像。将图像放在public
文件夹而不是assets
文件夹中。公共文件夹将像网络根目录一样可用,因此没有“公共”文件夹。在网址中。