Rails 6:ActionText 附加图像未在 _blob 部分模板中呈现
Rails 6: ActionText attached image not rendering in _blob partial template
我目前正在开发 Rails 6 应用程序,我在其中使用 cloduinary 来托管图像。我有一个 rich_text_content
.
的模型
class Question < ApplicationRecord
belongs_to :user
has_many :comments, as: :commentable
has_rich_text :content
end
当我从富文本编辑器添加图像并尝试呈现图像时,浏览器不呈现附加图像。
views/questions/show.html.erb
<div class="border-t-2 border-gray-600 text-2xl m-auto w-4/5">
<div class="h-56 my-8">
<%= @question.content %>
</div>
</div>
show.html.erb
模板只显示文本内容而不显示 @question.content
中的附件图像,所以当有 embeds_blob
时 _blob.html.erb
不显示图像.
<figure class="attachment attachment--<%= blob.representable? ? "preview" : "file" %> attachment--<%= blob.filename.extension %>">
<% if blob.representable? %>
<div class="max-w-xl mx-auto rounded overflow-hidden shadow-lg">
<%= cl_image_tag(blob.key, format: :jpg )%>
<div class="px-6 py-4">
<figcaption class="attachment__caption">
<% if caption = blob.try(:caption) %>
<%= caption %>
<% else %>
<div class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2">
<span class="attachment__name"><%= blob.filename %></span>
<span class="attachment__size"><%= number_to_human_size blob.byte_size %></span>
</div>
<% end %>
</figcaption>
</div>
</div>
<% end %>
</figure>
cl_image_tag(blob.key, format: :jpg)
应该渲染附件文件,但它不是如下图所示
但是,如果我要对所有内容进行评论并且只有以下行。 <%= cl_image_tag(blob.key, format: :jpg )%>
。渲染图像时没有 _blob.html.erb
中的 HTML 结构。
为什么 _blob.html.erb
不渲染来自 Cloudinary 的附加图像?
您可能已经知道,部分 returns false
.
中的 blob.representable?
方法调用
如果你看representable?
which in turn calls variable?
, you can see the content types it checks don't include image/heic
. You could configure to include it as documented here的源代码。
config.active_storage.variable_content_types
accepts an array of strings indicating the content types that Active Storage can transform through ImageMagick. The default is %w(image/png image/gif image/jpg image/jpeg image/pjpeg image/tiff image/bmp image/vnd.adobe.photoshop image/vnd.microsoft.icon image/webp)
包含 image/heic
并重新启动应用程序后,应该会显示图像。
注意:以上链接指向rails的master
分支。根据您使用的 rails 版本,您可能需要 select 正确的标签。
希望对您有所帮助。
我目前正在开发 Rails 6 应用程序,我在其中使用 cloduinary 来托管图像。我有一个 rich_text_content
.
class Question < ApplicationRecord
belongs_to :user
has_many :comments, as: :commentable
has_rich_text :content
end
当我从富文本编辑器添加图像并尝试呈现图像时,浏览器不呈现附加图像。
views/questions/show.html.erb
<div class="border-t-2 border-gray-600 text-2xl m-auto w-4/5">
<div class="h-56 my-8">
<%= @question.content %>
</div>
</div>
show.html.erb
模板只显示文本内容而不显示 @question.content
中的附件图像,所以当有 embeds_blob
时 _blob.html.erb
不显示图像.
<figure class="attachment attachment--<%= blob.representable? ? "preview" : "file" %> attachment--<%= blob.filename.extension %>">
<% if blob.representable? %>
<div class="max-w-xl mx-auto rounded overflow-hidden shadow-lg">
<%= cl_image_tag(blob.key, format: :jpg )%>
<div class="px-6 py-4">
<figcaption class="attachment__caption">
<% if caption = blob.try(:caption) %>
<%= caption %>
<% else %>
<div class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2">
<span class="attachment__name"><%= blob.filename %></span>
<span class="attachment__size"><%= number_to_human_size blob.byte_size %></span>
</div>
<% end %>
</figcaption>
</div>
</div>
<% end %>
</figure>
cl_image_tag(blob.key, format: :jpg)
应该渲染附件文件,但它不是如下图所示
但是,如果我要对所有内容进行评论并且只有以下行。 <%= cl_image_tag(blob.key, format: :jpg )%>
。渲染图像时没有 _blob.html.erb
中的 HTML 结构。
为什么 _blob.html.erb
不渲染来自 Cloudinary 的附加图像?
您可能已经知道,部分 returns false
.
blob.representable?
方法调用
如果你看representable?
which in turn calls variable?
, you can see the content types it checks don't include image/heic
. You could configure to include it as documented here的源代码。
config.active_storage.variable_content_types
accepts an array of strings indicating the content types that Active Storage can transform through ImageMagick. The default is%w(image/png image/gif image/jpg image/jpeg image/pjpeg image/tiff image/bmp image/vnd.adobe.photoshop image/vnd.microsoft.icon image/webp)
包含 image/heic
并重新启动应用程序后,应该会显示图像。
注意:以上链接指向rails的master
分支。根据您使用的 rails 版本,您可能需要 select 正确的标签。
希望对您有所帮助。