我最近决定在生产实验环境中实现我的 RoR 项目。 我遇到的问题是当尝试查看我的主应用程序页面时,apache 会显示公共(public)目录的内容。
重要说明:
- 我已经从公共(public)目录中删除了index.html文件(之前,apache会显示rails欢迎页面)
我的route.rb中有一个 map 根路线 - 它曾经在我的开发环境中完美工作。
map.root :controller => 'home'
我正在使用由 capistrano 部署自动创建的虚拟主机文件 /etc/apache2/sites-available/appname
其内容:
名称虚拟主机特定.ip.地址:80
服务器名称特定.ip.地址
文档根目录/var/www/appname/current/public
开发环境(一切正常):
使用默认的 mongrel 配置在我的 macbook pro 上安装了 Ruby 和 Rails
实验生产环境(我遇到问题的地方):
- Ubuntu 9.04 32 位
Rails、Ruby、Apache、git(本地)、passenger 和 capistrano 已按照以下说明进行安装和配置: http://hackd.thrivesmarthq.com/how-to-setup-a-linux-server-for-ruby-on-rails-with-github-and-phusion-passenger
所有步骤都很顺利,包括 capistrano 部署,它成功地将我的应用程序部署在: /var/www/appname/current/
如上所述,当尝试查看我的主应用程序页面时 - apache 会显示我的公共(public)目录的内容(即使我没有 index.html 并且我有一个在 dev 中工作的 map 根路径) )
问候, 杰森
最佳答案
添加
Options -Indexes
到虚拟主机中的目录配置设置。要么在
<Directory />
Options -Indexes
</Directory>
或在您的文档根目录中
<Directory /var/www/appname/current/public>
Options -Indexes
</Directory>
关于ruby-on-rails - apache 显示我的公共(public)目录的内容 - Rails + apache + Passenger + 本地 git + capistrano + ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597693/