2010-05-07 46 views
30

我正在使用最新的rails 3 beta版。該應用程序在開發模式下工作正常,但是當我通過rails server -e production以生產模式啓動服務器時,似乎找不到public文件夾。我得到這樣的錯誤信息:服務器無法在rails 3生產環境中找到公用文件夾

ActionController::RoutingError (No route matches "/javascripts/jquery.js"): 

而且類似的消息的一切,應該是在public文件夾中。 我已經試過這兩個雜種和webrick。我會很感激任何幫助。

回答

60

編輯配置/環境/ production.rb並設置該行:

config.serve_static_assets =真

+0

這真的幫了我。但是,如果將它設置爲false,請問HTTP服務器(比如說Apache或其他)是否會提供這些文件? apache如何知道將哪個URL移交給ruby運行時,以及它可以提供哪些URLs?我是一個roob noob – Zasz 2011-09-19 17:37:51

+0

真棒 - 謝謝! – house9 2011-12-21 20:36:30

+1

@Zasz看看nginx配置[這裏](http://www.talkunafraid.co.uk/2010/09/getting-set-up-with-ruby-and-rails/)。它將首先查找文件是否存在,並且只有在沒有文件時纔將請求傳遞給rails。 – ZelluX 2012-02-14 09:01:09

1

nginx的,麒麟和Apache會自動執行此操作。如果您使用這些服務器進行部署,請務必將其更改爲false。

+4

使用unicorn_rails(內聯網環境)中除去必須設置config.serve_static_assets =真 – house9 2011-12-21 20:37:31

+0

與house9同意。獨角獸需要將它設置爲true。 – HungryCoder 2012-03-26 13:54:22

相關問題