gpt4 book ai didi

使用 HAML 在 Sinatra 上运行的 Ruby 应用程序无法访问上传目录中的文件?

转载 作者:数据小太阳 更新时间:2023-10-29 08:33:26 24 4
gpt4 key购买 nike

我有一个 Ruby 应用程序,它是一个 Image Resizer。它使用 RMagick gem 来执行此操作。该应用要求用户上传文件,然后调整文件大小并保存新生成的文件。

Sinatra 似乎默认将所有上传的文件都放在'uploads' 目录中,而且新生成的文件似乎也保存在那里。我假设这是默认行为,不确定如何更改它,但目前这不是一个紧迫的问题(尽管如果您知道如何执行此操作,那也将不胜感激)。

现在,在正确生成文件后显示的“success.haml”页面中,我试图用一个简单的 img 标签显示新生成的图像。该文件的路径在@filepath 中找到,所以当我这样做时:

%img(src=@filepath)

呈现的 HTML(当使用 Firebug 检查时)正确显示

<img src="uploads/filename.jpg">

而且这个文件确实存在于我的文件夹结构中。但是,图像似乎损坏了。

关于如何克服这个问题有什么想法吗?

谢谢。

最佳答案

相对 url (uploads/filename.jpg) 之所以这样称呼是因为它们是相对于网络根目录的。在 Sinatra 中,这是公用文件夹。默认情况下,它位于您的应用程序目录中,名为 public。但您可以覆盖它。

set :public_folder, 'my_root' # this will make my_root dir the web root.

因此,要使您上传的内容在互联网上可见,请将它们放入您的公共(public)文件夹中。

Read this了解更多 Sinatra 设置和定制。

关于使用 HAML 在 Sinatra 上运行的 Ruby 应用程序无法访问上传目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11325593/

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