2011-05-12 8 views
3

J'utilise WEBrick pour démarrer un serveur local sur le port 2000 et essayer d'exécuter Ruby avec ERB. (J'ai Ruby 1.9.2 installé sur ma boîte OS X). Cela ne semble pas fonctionner.Comment exécuter Ruby simple sur un serveur Web local

Par exemple, je crée un fichier Erb (tryErb.erb) comme ceci:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>try erb</title> 
</head> 
<body> 
    <p> % 99.downto(96) do |number| 
    <%= number %> bottles of beer… 
    % end 
    </p> 
</body> 
</html> 

je chmod a=rwx tryErb.erb pour rendre le fichier exécutable, mais si je tente de visiter l'URL correcte (http: // localhost: 2000/tryErb.erb), rien ne semble fonctionner. Le navigateur ne va nulle part; il reste simplement sur l'index de la racine. Le journal dans les spectacles shell bash:

localhost - - [12/mai/2011: 10: 12: 05 CEST] "GET /tryErb.erb HTTP/1.1" 200 -> /tryErb.erb

Des idées?

+0

obtenu le même problème. ne peut pas l'obtenir pour interpréter les lignes de rubis – GnrlBzik

+0

effectivement jeter un oeil à ce post: http://stackoverflow.com/questions/2752906/how-to-access-html-request-parameters-for-a-rhtml-page-served- by-webrick – GnrlBzik

Répondre

4

Ok figuré celui-ci, pas complètement cependant. Vous devez spécifier le type mime: MimeTypes => {'rhtml' => 'text/html'}, je l'ai copié à partir de http://www.ruby-forum.com/topic/96436, reconnaît rhtml et exécute le code ruby ​​que vous avez dans <% ...%>.

require 'webrick' 

include WEBrick 

def start_webrick(config = {}) 
    # always listen on port 3000 
    config.update(:Port => 3000) 
    config.update(:MimeTypes => {'rhtml' => 'text/html'}) 
    server = HTTPServer.new(config) 
    yield server if block_given? 
    ['INT', 'TERM'].each {|signal| 
     trap(signal) {server.shutdown} 
    } 
    server.start 
end 

start_webrick(:DocumentRoot => Dir::pwd) 
+0

Merci GnrlBzik! Cela fonctionne en utilisant .rhtml ... aucun moyen d'utiliser .erb! –

+0

vous accueillir, ouais, je ne vais pas travailler erb non plus mais jusqu'à présent, je n'ai besoin de rien au-delà de rhtml, juste pour tester des choses dans le navigateur, le reste des choses que je fais est fait dans les rails. Pourquoi as-tu voulu erb en premier lieu? avez-vous supposé que c'est ce que les fichiers doivent être nommés? Je demande parce que j'ai supposé cela aussi. – GnrlBzik

Questions connexes