【发布时间】:2013-04-05 13:47:09
【问题描述】:
Rails 3.2.10
乘客 3.0.19
Ruby 1.9.3-p392(使用 rbenv)
试图通过Passenger 让我的Rails 应用程序在我的服务器上运行。收到此错误:
没有要加载的文件 -- path_to_app/app/assets/stylesheets/../config/environment
这是我的 Apache 配置文件:
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /srv/http
<Directory /srv/http>
Allow from all
</Directory>
RackBaseURI /rails_app
RackEnv test
<Directory /srv/http/rails_app>
Options -MultiViews
</Directory>
</VirtualHost>
(其中 /srv/http/rails_app --> path_to_app/public)
我真的不知道它为什么要在资产目录中寻找配置文件。这是 config.ru(据我所知,这是库存):
require ::File.expand_path('../config/environment', __FILE__)
run RailsApp::Application
我以前也这样做过,但只是在 Rails 2.x 中。我做错了吗?
更新:即使尝试从命令行启动测试或生产服务器也会发生这种情况,因此它不是乘客。一个新的 Rails 应用程序在所有环境下都能正常工作,所以它必须是迁移或 gem 问题,但我什至不知道从哪里开始。
【问题讨论】:
-
注意事项(尤其是 Rails)——如果你不知道问题出在哪里,永远不要假设一个区域,例如“必须是迁移或 gem 问题”。我的经验是总有一个比我最初想象的要多得多。
-
我怀疑这与版本从 3.0 到 3.1 时从 /public 移动到 /assets 的内容(至少对于开发环境)有关,即“资产管道”。我怀疑您的搜索可能是在 /app 中开始的,然后上升到 root,然后下降到 config。我的建议是做一个全新的应用程序,然后看看它在所有这些设置中使用了什么。您可能需要在指定版本的地方做一个,例如
rails new _2.3.8_ app1为了有一个有效的比较器 -
感谢cmets,看我的回答。
标签: ruby-on-rails ruby apache passenger rack