【问题标题】:Advice request: Serve local folder through rails (or not?)建议请求:通过 rails 服务本地文件夹(或不服务?)
【发布时间】:2010-10-25 19:38:41
【问题描述】:

任务:通过 http/80 将位于服务器本地文件夹中的文件提供给客户端。 最后,我打算在客户端上模拟文件夹,但这与我的问题无关。

因此,该服务器上有一个现有的 Rails 应用程序(基于rest/xml),客户端将与这些文件一起使用。

我不需要在上传或下载文件时对文件执行任何逻辑,所以我问自己:

  1. 我是否需要让我的 Rails 应用程序参与提供这些文件?
  2. 网络服务器不应该单独处理本地文件和客户端之间的链接吗?
  3. 这种新的 Rails Metal 或 Rack 集成是否会成为解决方案的一部分? (两者都不熟悉)

我猜这里重要的是 http over 80 端口。

感谢您对此事的任何指示或建议, 干杯,马克斯

我知道,如果投入大量时间,我可以花几个小时查看所有这些并弄清楚,但我非常非常忙,这为我节省了很多时间。

【问题讨论】:

    标签: ruby-on-rails http upload download


    【解决方案1】:

    阿帕奇?只需在 Rails 应用程序的配置中添加另一个 <Directory> 部分:

    Alias /static-files /path/to/the/static-files
    <Directory /path/to/the/static-files>
        Order allow, deny
        Allow from all
        # whatever else you need, Options, AllowOverride, etc.
    </Directory>
    

    【讨论】:

      【解决方案2】:

      将文件放在“公共”目录的子目录中 - 与样式表和 javascripts 一样

      【讨论】:

      • 听起来很性感。但是我不能更改文件的位置,但我会记住这一点,在 linux 下,我可以轻松地将文件目录与公共目录相结合。不过这里是窗户,我会调查一下。感谢您的帮助。
      【解决方案3】:

      如果您使用的是 Apache 或 Lighty,则可以使用 X-Sendfile(请参阅 this 博客文章)。 Nginx 支持X-Accel-Redirect。这两种方法都可以让您的 Web 服务器直接发送文件,而不涉及您的 Rails 应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        • 1970-01-01
        相关资源
        最近更新 更多