2016-11-15 4 views
1

Ich arbeite an einer ClojureScript Single-Page-App mit Routing auf der Client-Seite. Ich möchte einen einfachen Server mit meinem index.html sowie CSS/JS implementieren. Die Idee ist, alle Anfragen außer/static/* auf die Client-Seite zu übertragen und meinem SPA zu erlauben, damit umzugehen.Clojure Server-Konfiguration für SPA mit clientseitigen Routing

Es erwies sich als überraschend schwierig. Der Ausschnitt unten ist etwas, auf das ich gekommen bin, aber es funktioniert nicht.

(defroutes routes 
    (GET "/" [] 
    (resp/content-type template "text/html")) 
    (context "/static" [] 
    (route/resources "/css" {:root "css"}) 
    (route/resources "/js" {:root "js"})) 
    (route/not-found 
    (resp/content-type template "text/html"))) 

Ich benutze Boot-http mit benutzerdefinierten Handler. Irgendeine Chance könnte es verursachen?

+0

Es ist schwer zu helfen, wenn Sie nicht angegeben haben, wie Ihr Projektlayout aussieht, Ihre 'build.boot' Datei und was für ein Fehler Sie bekommen. Könnten Sie bitte weitere Informationen zu Ihrer Frage hinzufügen? –

+0

danke für die Antwort! eigentlich finde ich es hier nicht relevant ... kann hier nichts bootspezifisches sehen ... nur 3 files zu bedienen – walkthroughthecode

+1

Also was meinst du mit "es geht nicht"? –

Antwort

-1

Klingt, als ob Sie überhaupt kein Backend benötigen; Sie können mit boot-http/boot-reload entwickeln und auf Gh-Seiten, Firebase, Aws oder jedem statischen Datei-Host bereitstellen. Ein Vorlagenprojekt #nobackend finden Sie unter https://github.com/martinklepsch/tenzing.

+0

Sie benötigen noch einen benutzerdefinierten Handler für den Befehl 'serve' des Boot-HTTP. Es unterstützt standardmäßig nicht SPA mit clientseitigem Routing (Besuch http: // localhost: 3000/einige/Seite würde 404). – Laurent