我在Rails项目中有一个文件/public/animals/mammals/pets/d/dog.jpg。因此可以通过URL /animals/mammals/pets/d/dog.jpg
访问它。有没有办法让它可以从较短的URL访问,例如/dog-picture
指向/animals/mammals/pets/d/dog.jpg
?
答案 0 :(得分:1)
您不需要在路由中明确使用:controller和:action符号。您可以将它们作为默认值提供:
match 'photos/:id' => 'photos#show'
使用此路线,Rails会将/ photos / 12的传入路径与show
的{{1}}操作匹配。
您还可以通过为:defaults选项提供哈希来定义路由中的其他默认值。这甚至适用于未指定为动态段的参数。例如:
PhotosController
Rails会将照片/ 12与match 'photos/:id' => 'photos#show', :defaults => { :format => 'jpg' }
的展示操作相匹配,并将PhotosController
设置为params[:format]
。
答案 1 :(得分:0)
简单的解决方案是使控制器处理图像请求。然后,您可以将图像移出公用文件夹。
虽然说实话但我不确定除了修道者之外,长网址确实是一个问题。