【问题标题】:Nginx how to serve all file under a location and its sub directoriesNginx如何提供一个位置及其子目录下的所有文件
【发布时间】:2017-09-13 05:25:03
【问题描述】:

我成功地将 Rails 5.1 应用程序部署到 EBS,而不是在 public 目录中生成包文件。不知何故,我认为nginx 需要配置为允许访问这些资源。目前该应用程序能够访问同样位于那里的404 页面。

如何允许nginx 访问public/packs 文件夹下的所有内容。这是我使用的似乎不起作用的规则:

location /packs {
  root /var/app/current/public/packs;
}

有什么帮助吗?

【问题讨论】:

    标签: ruby-on-rails nginx amazon-elastic-beanstalk


    【解决方案1】:

    如果您尝试显示站点目录中的文件(没有列出文档的 HTML 页面),您可以为该目录启用 nginx 自动索引。

    http://nginx.org/en/docs/http/ngx_http_autoindex_module.html

    # Allow browser to see files in directory
    # Exact request URI matching
    location = /var/www/path/ {
        autoindex on;
    }
    

    【讨论】:

      【解决方案2】:

      如果您已成功部署您的 rails 应用程序并且它正在运行,那么我认为没有必要提供对公用文件夹内容的访问权限。

      它们默认由服务器提供服务。 如果您在www.example.com 访问您的网站,nginx 和乘客根为/var/app/current/public 您可以通过以下方式访问公用文件夹中的文件:

      www.example.com/file_in_public_folder.ext
      

      www.example.com/packs/any_path_to_file.ext 
      

      【讨论】:

      • 是的,它只提供public/assets 下的文件,而不是新的`public/packs` 目录
      猜你喜欢
      • 2011-12-04
      • 1970-01-01
      • 2013-12-31
      • 2015-09-28
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      相关资源
      最近更新 更多