2010-05-07 3 views
30

J'utilise les derniers rails 3 beta. L'application fonctionne très bien en mode développement, mais lorsque je démarre le serveur en mode production via rails server -e production, il semble que le dossier public est introuvable. Je reçois des messages d'erreur comme:Impossible pour le serveur de trouver le dossier public dans les rails 3 environnement de production

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

Et des messages similaires pour tout ce qui devrait être dans le dossier public. J'ai essayé ceci avec à la fois mongrel et webrick. J'apprécierais toute aide.

Répondre

60

config édition/environnement/production.rb et la mise en cette ligne:

config.serve_static_assets = true

+0

Cela m'a vraiment aidé. Mais si vous le définissez sur false, le serveur HTTP (par exemple Apache ou autre) va-t-il servir ces fichiers? Comment apache sait-il quelles URL transmettre à l'exécution de ruby, et à quoi elle peut servir? Im a roob noob – Zasz

+0

génial - Merci! – house9

+1

@Zasz Voir la configuration de nginx [ici] (http://www.talkunafraid.co.uk/2010/09/getting-set-up-with-ruby-and-rails/). Il va d'abord rechercher si le fichier existe et transmettre la requête aux rails uniquement si ce n'est pas le cas. – ZelluX

1

nginx, licorne et apache feront automatiquement. assurez-vous de revenir à false si vous déployez ces serveurs.

+4

en utilisant unicorn_rails (environnement intranet) a dû configurer config.serve_static_assets = true – house9

+0

être d'accord avec house9. Licorne a besoin d'être défini sur true. – HungryCoder

Questions connexes