gpt4 book ai didi

ruby-on-rails - 蜻蜓和短网址

转载 作者:数据小太阳 更新时间:2023-10-29 07:45:39 25 4
gpt4 key购买 nike

我在一个返回大量照片的项目中使用 Dragonfly,并希望优化 URL。我目前正在获取如下图片网址:

http://localhost:3000/media/BAhbCFsHOgZmSSJgZmRlL2ZkZTAxYzQ0LTM4Y2UtNGU0ZS1iOWRlLWUwZmUxNWUwN2JmMC83Mzk1NmZlMC05ZTA5LTQzNWUtODUyMC00MzFlYzQxMzQ1OTQvb3JpZ2luYWwuanBlZwY6BkVUWwg6BnA6CnRodW1iSSIMMjQweDI0MAY7BkZbCTsHOgxjb252ZXJ0SSIQLXF1YWxpdHkgODAGOwZGMA/240x240.jpg

超过 256 字节。我想要这样的东西:

http://localhost:3000/media/1024/240x240_medium.jpg

符合:

/media/:id/:format

在使用 Dragonfly 和 Rails 时,我将如何添加它,以便 :format 映射到操作链,而 :id 用于查找模型或图像?谢谢!

编辑:

我已经为我需要的每种格式添加了自定义 Mime::Type,并且具有以下工作原理:

# config/routes.rb
match "/photos/:id/:style", to: "photos#show", as: :media

# app/controllers/photos_controller.rb
def show
@photo = Photo.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.jpg { cache('public', 86400); redirect_to @photo.url(params[:style], 'jpg') }
format.png { cache('public', 86400); redirect_to @photo.url(params[:style], 'png') }
format.gif { cache('public', 86400); redirect_to @photo.url(params[:style], 'gif') }
end
end

# app/views/photos/show.html.erb
<%= image_tag media_path(id: @photo.id, style: 'small', format: 'png') %>

然而,这会导致每个图像的 302(但在其他方面工作正常)。是否可以将其作为渲染处理或以某种方式进行内部重定向(即不要求客户端发出重复请求)?

最佳答案

您不需要使用 Controller 操作 - 您可以使用蜻蜓端点 - 请参阅 http://markevans.github.com/dragonfly/file.URLs.html#Routed_Endpoints

例如

match '/photos/:id/:style.:format' => Dragonfly[:images].endpoint { |params, app|
Photo.find(params[:id]).image.thumb(params[:style]).encode(params[:format])
}

或者类似的东西(还没有尝试过上面的代码,但它会遵循这些原则)

关于ruby-on-rails - 蜻蜓和短网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com