ruby-on-rails - rails active storage 错误的 url - 301 状态
问题描述
使用 Active Storage 将一个附加image
到一个article
在storage.yml
:
local:
service: Disk
root: <%= Rails.root.join("storage") %>
article.rb
:
class Article < ApplicationRecord
belongs_to :auteur
has_one_attached :image
以添加文章的形式:
<%= f.file_field :image %>
在 article_controller.rb 中:
def hop
@auteur = Auteur.find(params[:auteur_id])
@article = @auteur.articles.new(article_params)
@article.publie = params[:publie].to_s
@article.slug = Article.to_slug(@article.titre)
@article.save
redirect_to adm_auteur_tous_articles_url
end
这样做,图像被上传到storage/es/ul/esulvqpj2apfcqx41hwdtnchd5y4
(这是正确的,因为我可以在 MacOs finder 窗口中看到图像)
但在视图中,我这样做:
<%= image_tag(@article.image) if @article.image.attached? %>
图片未显示,因为图片的网址是:
http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCZz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--661c66c418b20fc46350823faaac7124c25138dd/chat.jpg
这导致了一个301 moved permanently
状态。
所以图像没有显示出来。
解决方案
从路线中删除这条线就可以了(我把它作为最后一行ot routes.rb:
get '*path' => redirect('/')
推荐阅读
- java - 如何以编程方式将所有可通过电子邮件发送的 testng 报告合并为单个报告
- javascript - 我在浏览器控制台中显示数据时遇到了一些问题
- python - 对于以networkx图为背景的大型数据集,使用matplotlib将多列动画为点非常慢
- jenkins - AKS 中的 Docker-in-Docker
- vba - Excel VBA - 带有 462 错误的 Word.Selection 问题
- jmeter - Jmeter-不识别文件中的字母
- branch.io - 如何将自定义数据传递给 branch.io SDK 横幅 init() 调用
- javascript - vue-router:更新查询时 this.$router.push 不起作用
- python - Matplotlib:从 3D 散点图中检索 rgba
- c# - 为什么我不能“等待”来自 Atlassian SDK 的异步方法?