2011-10-19 9 views
14

Korzystanie z pierścienia (i narzędzi do tworzenia pierścieni) - jestem w stanie obsłużyć pliki statyczne z "zasobów" itp., Jak w dokumentach podczas uruchamiania w rozwoju - jednak - kiedy Pakuję rzeczy przez lien uberwar Nie mam pojęcia, jak sprawić, by wyświetlały się te pliki podczas działania w kontenerze. Widzę sprzeczne dokumenty na opakowaniu-zasobie lub ustawienie: ścieżka-zasobów, ale żadna nie działa.Obsługa plików statycznych z pierścieniem/kompozycją - z wojny

+0

Dla Google App Engine mogłem tylko statyczne pliki bezpośrednio w katalogu 'war /'. Pliki szablonów (używam soi) faktycznie pozostają w katalogu 'resource /' i jakoś zostają wkompilowane do katalogu wojny. Przypuszczam, że to nie jest możliwe/nie działa w twoim przypadku? – Paul

Odpowiedz

23

Zgodnie Compojure za Getting Started Wiki umieścić route/resources poniżej ścieżkach:

(defroutes main-routes 
    (GET "/" [] "<h1>Hello World Wide Web!</h1>") 
    (route/resources "/") 
    (route/not-found "Page not found")) 

... a następnie utwórz folder resources/public w projekcie, połóż statyczne pliki. Odwołując się do tych plików, /resources/public jest niejawny, więc możesz napisać coś w stylu: (include-css "/css/site.css"). Jest to .

+2

to ma być 'resources/public' zamiast' resrouce/public'? – kristianlm

+0

Tak, wygląda na to, że ktoś to poprawił. –

+1

Przepraszam Michael, nie mogę przeliterować! Próbowałem powiedzieć, że katalog 'resources' ma być w liczbie mnogiej, jak sądzę. – kristianlm

18

powinien zrobić, co chcesz.

Po prostu umieść pliki w resources/public, a następnie dodaj trasę (resources "/") pod koniec listy tras.

Potrzebujesz dość świeżego pierścienia, aby działał poprawnie; starsze wersje programu lein-ring nie obsługują katalogu zasobów dla zasobów publicznych.

Powiązane problemy