Nginx如何提供一个位置及其子目录下的所有文件
Posted
技术标签:
【中文标题】Nginx如何提供一个位置及其子目录下的所有文件【英文标题】:Nginx how to serve all file under a location and its sub directories 【发布时间】:2017-09-13 05:25:03 【问题描述】:我成功地将 Rails 5.1 应用程序部署到 EBS,而不是在 public
目录中生成包文件。不知何故,我认为nginx
需要配置为允许访问这些资源。目前该应用程序能够访问同样位于那里的404
页面。
如何允许nginx
访问public/packs
文件夹下的所有内容。这是我使用的似乎不起作用的规则:
location /packs
root /var/app/current/public/packs;
有什么帮助吗?
【问题讨论】:
【参考方案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` 目录以上是关于Nginx如何提供一个位置及其子目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章
请问:如何批处理删除文件夹及其所有子文件夹下N天前所有文件?
如何设置NGINX以根据位置(在相同的server_name下)部署不同的单页应用程序(SPA的...即静态文件)和子路由