Невозможно правильно проложить маршрут с биди - PullRequest
0 голосов
/ 29 марта 2020

Я отправляю обработчик индекса на "/ this-route":

(defn index-handler [req]
  (assoc (resource-response "index.html" {:root "public"})
         :headers {"Content-Type" "text/html; charset=UTF-8"}))

(def routes ["" {"/this-route" {:get index-handler}}]) ;; works

, который работает нормально.

Но когда я что-то добавляю к этому маршруту, я не могу отправить обработчик индекса, хотя я все еще могу отправить базовый c res / response:


(def routes ["" {"/this-route" {"" {:get index-handler} ;; doesn't work
                                "/something" {:get index-handler} ;; doesn't work
                                "/something-else" (res/response "some response") ;; works  

}}])

I получить ошибки в консоли на стороне клиента, показывая ошибку в строке index. html, где я запускаю мое приложение:

    <script type="text/javascript">myapp.system.go();</script>

, и ошибка «myapp не определена».

Почему это может быть, и что я делаю неправильно?

--- EDIT --- Это полная ошибка в консоли:

Uncaught ReferenceError: myapp is not defined
    at something-else:15

DevTools failed to load SourceMap: Could not load content for chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/include.preload.js.map: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME

1 Ответ

0 голосов
/ 30 марта 2020

Ваши маршруты работают нормально:

  (let [routes ["" {"/this-route" {:get :some-handler}}]]
    (is= (bidi/match-route routes "/this-route" :request-method :get)
      {:handler :some-handler, :request-method :get}))

  (let [routes ["" {"/this-route" {""                {:get :handler-1}
                                   "/something"      {:get :handler-2}
                                   "/something-else" {:get :handler-3}}}]]
    (is= (bidi/match-route routes "/this-route" :request-method :get)
      {:handler :handler-1, :request-method :get})
    (is= (bidi/match-route routes "/this-route/something" :request-method :get)
      {:handler :handler-2, :request-method :get})
    (is= (bidi/match-route routes "/this-route/something-else" :request-method :get)
      {:handler :handler-3, :request-method :get}))

Как сказал cfrick, вы каким-то образом создали проблему при компиляции и / или загрузке кода. Вот где вам нужно искать.

...