【问题标题】:Have subfolder show index.html - Rails / nginx有子文件夹显示 index.html - Rails / nginx
【发布时间】:2012-08-20 19:14:50
【问题描述】:

我的 rails 应用程序上有一个子目录,我希望它完全是静态的。我的问题是我无法访问 /subdirectory/ 并让它显示 index.html,我必须去 /subdirectory/index.html。

如何显示子目录的索引文件?我正在使用 nginx 和 rails 2.3.11

【问题讨论】:

    标签: ruby-on-rails nginx ruby-on-rails-2


    【解决方案1】:

    您使用索引指令设置索引文件是什么 http://nginx.org/en/docs/http/ngx_http_index_module.html#index

    或者,您可以将尝试 index.html 显式添加到您的子目录位置的 try_files 指令中:

    location /static-subdir/ {
      try_files $uri $uri/index.html;
    }
    

    【讨论】:

    • 嗯好的,所以我让它在我们的开发服务器上工作。我把同样的东西放在生产上,它只显示了找不到轨道的页面。有任何想法吗? server{} 代码几乎相同,只是域不同,并且包含几个 nginx conf。
    • 你说它显示的是 rails not found 页面,而不是 nginx 页面。这表明它被传递给 rails 应用程序,而不是检查静态文件。这表明您的位置设置不太正确,因为错误的位置正在获得优先权。 nginx.org/en/docs/http/ngx_http_core_module.html#location 说明了考虑位置指令的顺序。
    • 嗯好吧,再靠近一点。我确实在 url 字符串之后添加了“mimic1000”,它至少做了一些不同的事情。我不得不将 $uri 更改为我的文件夹名称,但是.. 然后它开始执行 rails forward 说该路线不存在。但奇怪的是,当我手动访问 url 时,它显示文件很好..
    • 明白了,好吧,看起来 nginx 对斜线是特定的。
    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 2013-07-17
    • 1970-01-01
    • 2013-10-14
    • 2017-09-24
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多