2013-11-15 16 views
6

È stato semplice costruire il mio primo servlet con spray-io.In che modo spray trova le risorse, ad es. javascript

Ma le risorse a cui si fa riferimento nell'intestazione non vengono mai trovate.

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

in quale directory fa uno ha per mettere quelle risorse, o come può essere diretto lo spray a guardare lassù?

Domanda semplice, ma non riuscivo a capirlo.

Molti thankx

Girgl

risposta

0

Se si utilizza a spruzzo di routing, allora dovrebbe essere facile, basta fornire un percorso per le risorse statiche. Per esempio è possibile effettuare le seguenti operazioni:

Diciamo che le risorse statiche sono in /css, /js e /img cartelle:

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

con pathPrefix si stanno facendo ogni percorso un prefisso di un percorso senza pari. Allora avete bisogno di una direttiva per estrarre percorso del file statici dalla richiesta, per esempio, si può fare in questo modo:

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

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

quindi costruire il percorso che avrebbe gestire le risorse:

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

con spray routing, utilizzare queste direttive -

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

"CSS" e "js" devono essere in src/main/resources directory

+0

Grazie Bharadwaj, una bella risposta semplice. – reggoodwin

Problemi correlati