Я разделяю пространство имен между всеми моими кольцевыми маршрутами, чтобы сохранить каждый маршрут в отдельном файле, поэтому у меня есть файл routes/core.clj
, который содержит:
(ns test-proxy.routes.core)
;; Some utility functions
Затем я запускаю каждый обработчик маршрута файл вроде этого:
(in-ns 'test-proxy.routes.core)
;; rest of the code
Когда я запускаю сервер, он работает отлично.
Но когда я изменяю любой из файлов и перезагружаю страницу в браузере, я получаю следующую ошибку:
Caused by: java.lang.Exception: Found lib name 'test-proxy.routes.core'
containing period with prefix 'quote'. lib names inside prefix lists
must not contain periods
Если я перезагружаю сервер вручную (lein ring server
), все работает снова, как и ожидалось, но как только я делаю еще одно изменение в базе кода, происходит сбой с той же ошибкой. Это определенно связано с тем, как я использую пространства имен, но что меня привлекает, так это то, что он работает без проблем при перезапуске сервера.
Если я удаляю пространство имен в (in-ns test-proxy.routes.core)
, как кажется, ошибка предположим, сервер даже не запускается:
Syntax error (ClassNotFoundException) compiling at (diplomat/routes/docs.clj:1:1).
test-proxy.routes.core