Я хочу использовать следующий маршрут для любого пути запроса GET, чтобы вместо этого использовать интерфейсную маршрутную библиотеку (реагировать-маршрутизатор).Запрос соответствия и GET в Compojure для браузера с взаимодействием с маршрутизаторомИстория
(GET "/" [] (resource-response "index.html" {:root "public"}))
Это то, что я пытался:
(GET "/*" [] (resource-response "index.html" {:root "public"}))
(rfn [] (resource-response "index.html" {:root "public"}))
(GET "/:any{.*}" [] (resource-response "index.html" {:root "public"}))
(GET "/*" [] (ring.util.response/content-type
(ring.util.response/resource-response "index.html" {:root "public"}) "text/html"))
(GET "/*" [] (clojure.java.io/resource "public/index.html"))
Все они дают ту же ошибку:
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:5000/index.css".
bundle.js:1 Uncaught SyntaxError: Unexpected token <
И Неожиданный токен в index.html
Так первая <
мой вопрос в том, как я могу адаптировать свой стек Compojure/Ring/Immutant для воспроизведения ni с реагирующим маршрутизатором?
UPDATE: Я также попробовал следующее связующее программное обеспечение, чтобы изменить все запросы к корню, но не повезло:
(defn wrap-dir-index [handler]
(fn [req]
(handler
(assoc req :uri "/"))))
Взгляните на http://stackoverflow.com/questions/35828884/serving-index-html-file-from-compojure/35829722#35829722 - при использовании этого кода все ваши файлы из 'resources/public' будет обслуживаться сервером, и все пути, заканчивающиеся на '/', будут служить '/ index.html'. –
Я хочу, чтобы каждый GET служил /index.html, а не только тот, который заканчивается на /. Я обновил свой вопрос с помощью других альтернатив, но все же не смог получить работу, как я хочу. – user3139545
Что относительно других ресурсов, таких как javascript и css? Все они встроены в ваш index.html? Или, может быть, вы хотите обслуживать все, что у вас есть в 'resources/public' и fallback, чтобы обслуживать' index.html', если конкретный ресурс не найден? –