2012-06-07 7 views
8

In meinem aktuellen Projekt ruby ​​on rails verwende ich Webrick (Standard) Server für die Entwicklung. Ich habe einen separaten Server zum Testen der Anwendung, und ich möchte die Umgebung auf Produkte darin einstellen. Ich habe die folgende Zeile verwendet, um den Server im Produktionsmodus auszuführen.Laufschienen in einem Produktionsmodus in Webrick-Server

rails s -e production 

Das Problem ist, es funktioniert perfekt, wenn seine in der Entwicklung Modus, aber im Server-Modus ich folgende Störung zu erhalten:

Started GET "/" for 172.20.7.94 at Thu Jun 07 10:35:45 +0530 2012 
    Processing by FrontendController#dashboard as HTML 
Rendered frontend/dashboard.html.erb within layouts/frontend (3.0ms) 
Completed 200 OK in 50ms (Views: 22.0ms | ActiveRecord: 0.0ms) 


Started GET "/assets/frontend-datauri.css" for 172.20.7.94 at Thu Jun 07 10:35:4 
6 +0530 2012 
    Processing by Jammit::Controller#package as HTML 
    Parameters: {"extension"=>"css", "package"=>"frontend-datauri"} 
Completed 500 Internal Server Error in 190ms 

NameError (uninitialized constant POpen4::Open4): 


Started GET "/assets/frontend.js" for 172.20.7.94 at Thu Jun 07 10:35:46 +0530 2 
012 
    Processing by Jammit::Controller#package as 
    Parameters: {"extension"=>"js", "package"=>"frontend"} 
Completed 500 Internal Server Error in 105ms 

NameError (uninitialized constant POpen4::Open4): 

Ich verwende Jammit und POpen4 und meine Schienen-Version ist : 3.0.9. Ruby Version 1.8.7. Ich kann die Version derzeit nicht aktualisieren, da mehrere andere Entwickler an dem Projekt beteiligt sind. Kann mir jemand eine Lösung dafür geben?

Dank

+2

Das erste, was: webrick in der Produktion ist eine schlechte Idee. Es wurde nicht dafür entworfen und hat sehr schlechte Leistungen. Verwenden Sie "dünn", "Einhorn", ... Zweitens: Es scheint, dass der Edelstein POpen4 nicht in Ihrem Bündel vorhanden ist. Hast du deinen POpen4-Edelstein nur in deiner Edelstein-Datei in eine ': development'-Gruppe gelegt? Oder haben Sie 'bundle install' ausgeführt, ausgenommen die Produktion mit einer' --without' Option? –

+0

Eigentlich habe ich nichts für POpen4 in Gemfile erwähnt ja auch mit webrick für die Produktion ist keine gute Idee, aber ich benutze hier auf einem Testserver, um sicherzustellen, dass es einwandfrei funktioniert – Mujahid

Antwort

1

Vielen Dank für alle, die mir bei diesem Problem geholfen haben. Ich habe CentOS installiert und alles ist repariert und läuft reibungslos.

, dass einige Problem mit dem Windows-Server sein könnte 2008, die ich vorher

wurde unter Verwendung

Vielen Dank

0

Die beste Praxis ist Ihre Abhängigkeiten in Ihrem Gemfile angeben.

Gemfile:

... 
gem 'popen4' 
... 

und dann bundle install läuft ein bestimmtes Bündel von Edelsteinen für Ihre Anwendung zu erstellen.

Andernfalls hängt Ihre App von dem ab, was Sie lokal auf Ihrem Computer installiert haben (vermutlich über gem install popen4).

Hier haben Sie die Produktionsmaschine nicht das Juwel POpen4 installiert ... So ist die andere schnelle (aber keine empfohlene) Lösung, den Edelstein manuell auf Ihrer Produktionsmaschine mit gem install popen4 zu installieren.

+0

Ich habe es hinzugefügt und immer noch kein Glück dafür :(Ich nehme an, das Problem ist von Jammit Kompressor, wie es Yui-Kompressor verwendet wird es ein Problem in dort – Mujahid

+0

@Mujahid Brummen ok Ich habe gerade verstanden, dass Popen4 ist nicht eine Ihrer Abhängigkeiten, sondern eine Abhängigkeit von Jammit> yui-Kompressor ... Also solltest du deine Frage umbenennen, es ist überhaupt kein Webrick-Problem;) Trotzdem enthält dein Bundle keinen POpen4 ... du kannst versuchen deine 'Gemfile.lock' Datei zu entfernen und' bundle install' zu starten Berechnen Sie die Abhängigkeiten ... –

+0

@Mujahid, wenn ich sage, dass Sie auf Ihrem Produktionsrechner "Run Bundle Install" ==> ausführen, nicht auf Ihrem lokalen Entwickler. –

Verwandte Themen