【问题标题】:Make assets folder accessible in production使资产文件夹在生产中可访问
【发布时间】:2013-06-20 05:36:05
【问题描述】:

我使用的是 Rails 3.2.13。 处理基于产品的应用程序。我想将产品缩略图显示为链接而不是无聊的文本。 rake 任务是每 5 分钟向app/assets/screenshots/* 添加缩略图。 我希望应用程序在没有资产预编译的情况下随时访问它们。 我们在 Rails 中是否有某种方法可以使应用程序/资产/图像/屏幕截图/* 在生产模式下可供控制器/视图访问。 如果你能告诉我这样做的缺点是什么,那就太好了。

提前致谢

【问题讨论】:

    标签: ruby-on-rails-3 routes thumbnails asset-pipeline assets


    【解决方案1】:

    首先,在您的情况下,截图应该是大而动态的。因此,它们应该被视为数据而不是资产

    即使您可以,也不应将数据放入“/assets”中。

    “/assets”目录应该受版本控制。想象一下你的存储库被论文污染了。

    所以,我的建议是修改您的 rake 任务,将它们直接放在 /public 目录下。这样更容易,更合理,使用更少的系统资源。

    对于数据,您可以有另一项任务来保护它们,如果您愿意,可以将它们上传到亚马逊,但那是另一回事了。

    【讨论】:

    • 如果我希望它们具有安全性,比如只有管理员可以看到 1.png、2.png 和 3.png 而公众可以看到 4.png、5.png、6.png
    • 好的,作为用户,我可以查看 public/screenshots/* 中的所有数据吗,或者我只能通过名称访问它...
    • @NishutoshSharma,即使你把这些东西放在 /assets 中,你也会面临同样的问题。对于这个特定的问题,我的建议是即使在公共场合也给图像提供唯一的标记名称。管理员可以看到图像名称,而公众虽然可以访问,但不能。对于大多数情况,这应该足够安全。
    • 嗯,这就是我想将一个长字符串指纹名称附加到缩略图的原因,但无论如何,用户是否可以在 /public 的特定文件夹中查看或下载所有数据.. 像,我去 www.domain.com/public/screenshots 看到所有的图片,有没有可能,如果没有,那对我来说是安全的
    • @NishutoshSharma,关于服务器设置。通常服务器不允许读取目录,但您需要在服务器中检查它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多