以下是我在我的nginx.conf:Rails的配置nginx.conf顯示文件目錄不能索引
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
passenger_root /usr/lib/ruby/gems/1.9.1/gems/passenger-3.0.11;
passenger_ruby /usr/bin/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain text/html text/css
application/x-javascript text/xml
application/xml application/xml+rss
text/javascript;
server {
listen 80;
server_name domain.com www.domain.com;
# autoindex on;
passenger_enabled on;
rails_env production;
access_log logs/mrfs.access.log;
location/{
root /opt/nginx/html/mrfs/public; #line updated per suggestion below
}
}
}
我可以切換自動索引和關閉,並且當它是它會顯示一個403錯誤當它打開時被註釋掉或目錄列表。當我訪問目錄列表時,我可以瀏覽它們並下載各種文件。這在我看來使它不是一個權限問題。當我禁用了自動索引時,我在錯誤日誌中找不到目錄錯誤。我想我需要做的是告訴nginx如何加載我的index.html.erb文件?我怎麼做?那是什麼錯誤?
更新
我把一個 'index.html的' 在我的/ opt/nginx的/ HTML/MRFS /公用文件夾,它會加載。那麼會導致rails/nginx/passenger公開加載index.html文件,但不會在我的路由中加載home.html.erb文件?我可以運行'rails s',然後做一個wget http://localhost並且它會拉下正確的html文件。
公衆是否有特殊含義?我意識到這樣做可能是常規做法,我會添加一個公共目錄並將其放在那裏。但是我所做的只是在github上的git pull我的rails回購。 –
您的rails應用程序應該有一個名爲'public'的目錄,它是由'rails new'生成的。它基本上是所有rails應用程序的web根目錄。 – halfdan
謝謝。我在想像public_html。 –