2010-05-07 5 views
30

Ich benutze die neuesten Rails 3 Beta. Die App funktioniert gut im Entwicklungsmodus, aber wenn ich den Server im Produktionsmodus über rails server -e production starte, scheint es, dass der Ordner public nicht gefunden werden kann. Ich bekomme Fehlermeldungen wie:Server nicht in der Lage, öffentliche Ordner in Schienen zu finden 3 Produktionsumgebung

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

und ähnliche Meldungen für alles, was im public Ordner sein sollte. Ich habe das mit Mongrel und Webrick versucht. Ich würde mich über jede Hilfe freuen.

Antwort

60

Bearbeitung config/Umgebungen/production.rb und Setzen Sie diese Zeile:

config.serve_static_assets = true

+0

Das hat mir wirklich geholfen. Aber wenn Sie es auf false setzen, wird der HTTP-Server (sagen Apache oder etwas) diese Dateien liefern? Wie weiß Apache, welche URLs an die Ruby Runtime übergeben werden und welche er liefern kann? Ich bin ein Roob Noob – Zasz

+0

genial - Danke! – house9

+1

@Zasz Siehe die nginx-Konfiguration [hier] (http://www.talkunafraid.co.uk/2010/09/getting-set-up-with-ruby-and-rails/). Es wird zuerst feststellen, ob die Datei vorhanden ist, und die Anforderung nur dann an Schienen senden, wenn dies nicht der Fall ist. – ZelluX

1

nginx, Einhorn und Apache wird dies automatisch tun. Stellen Sie sicher, dass Sie diesen Wert auf false zurücksetzen, wenn Sie diese Server bereitstellen.

+4

using unicorn_rails (Intranetumgebung) musste config.serve_static_assets = true setzen – house9

+0

stimme mit house9 überein. Einhorn muss auf "Wahr" gesetzt sein. – HungryCoder

Verwandte Themen