【问题标题】:Rails 3 Passenger Path ErrorRails 3 乘客路径错误
【发布时间】: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


【解决方案1】:

原来在 app/assets/stylesheets 中有一些奇怪的 FCGI 文件(dispatch.rb、dispatch.fcgi)。一定是从 Rails 2.x 应用程序遗留下来的,或者是意外移动到那里的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多