clojure - In ClojureScript, why can't I navigate to a URL entered by hand, but if I click a link it works? -


(note, i'm using reagent, secretary, , compojure (among others))

i want create route /sectest/:id, , if point browser route, following error:

resource interpreted stylesheet transferred mime type text/html: "http://localhost:3449/sectest/css/site.css". asdf:1 refused execute script 'http://localhost:3449/sectest/js/app.js' because mime type ('text/html') not executable, , strict mime type checking enabled.

but if click on link in browser navigates route, works fine...

here's pertinent code:

client side:

(secretary/defroute "/sectest/:id" [id]   (do     (js/console.log (str "hi " id))     (session/put! :current-page #'my-page))) 

server side:

(defroutes routes   (get "*" [] loading-page) ;this anticipates client-side routing   (get "/cards" [] cards-page)   (resources "/")   (not-found "not found"))  (def app (wrap-middleware #'routes)) 

so following link takes me my-page, , console prints "hi asdf" fine:

[:div [:a {:href "/sectest/asdf"} "sectest"]] 

but if type in http://localhost:3449/sectest/asdf, error, , can't seem trace it. suspect might have code trying find resources located @ /sectest, (which shouldn't), can't confirm or figure out how work it... am new clojure, forgive if i'm massively ignorant on point, thoughts?

take @ server side routing, have 1 route:

(get "*" [] loading-page)     

as handles following routes never trigger. order matters:

(defroutes routes   (get "/cards" [] cards-page)   (resources "/")   (get "*" [] loading-page) ;this anticipates client-side routing ) 

the above should trick, removed 404 route, should handled frontend routing.

the reason works when clicking on page link in spa handled secretary. if enter url manually doing page reload , request handled compojure initially.

edit:

after taking closer look, relative links css/js files in html template culprit here:

/sectest/js/app.js 

the compojure resources route won't match , default catch route loading-page served css/js file browser. hence error.

for dev env had correct :asset-path of boot cljs task source mapping files suffered problem. should similiar lein-figwheel.


Comments

Popular posts from this blog

SVG stroke-linecap doesn't work for circles in Firefox? -

routes - Laravel 4 Wildcard Routing to Different Controllers -

cross browser - XSLT namespace-alias Not Working in Firefox or Chrome -