2013-11-15 11 views
6

Es war einfach, mein erstes Servlet mit Spray-io zu bauen.Wie findet das Spray Ressourcen - z.B. Javascript

Die Recources, auf die in der Kopfzeile verwiesen wird, werden jedoch nie gefunden.

< head> ... < script src = "javascript/jquery/jquery-1.9.1.js" /> ... </head>

In welchem ​​Verzeichnis Muss man um diese Ressourcen zu nutzen, oder wie kann Spray darauf gerichtet werden, dort nachzuschauen?

Einfache Frage, aber ich konnte nicht herausfinden.

Viele thankx

Girgl

Antwort

0

Wenn Sie Spray-Routing verwenden, dann sollte es einfach sein, bieten nur eine Route für Ihre statische Ressourcen. Zum Beispiel können Sie folgendes tun:

Lassen Sie uns sagen, dass Ihre statischen Ressourcen sind in /css, /js und /img Ordner:

def staticPrefixes = List("css", "js", "img") map { pathPrefix(_) } reduce { _ | _ } 

mit pathPrefix Sie machen jeden Pfad ein Präfix von einer unvergleichlichen Weg. Dann müssen Sie eine Richtlinie Pfad zur statischen Datei aus dem Wunsch zu extrahieren, zum Beispiel können Sie es wie folgt tun:

def stripLeadingSlash(path: String) = if (path startsWith "/") path.tail else path 

val staticPath = 
    staticPrefixes & 
    cache(routeCache()) & 
    extract(ctx ⇒ stripLeadingSlash(ctx.request.uri.path.toString)) 

dann Ihre Route konstruieren, die Ihre Ressourcen verwalten würde:

val staticRoutes = 
    get { 
     staticPath { path ⇒ 
     getFromResource(path.toString) 
     } 
    } 
10

mit Spray Routing, verwende ich diese Richtlinien -

pathPrefix("css") { get { getFromResourceDirectory("css") } } ~ 
pathPrefix("js") { get { getFromResourceDirectory("js") } } ~

"css" und "js" haben in src/main/resources Verzeichnis sein

+0

Danke Bharadwaj, eine nette einfache Antwort. – reggoodwin