Регистрация | Войти
Lisp — программируемый язык программирования
RSS
Как отключить url-encoding в параметрах restas:genrul ?
necto - 08.11.2013 22:09, Сообщений - 4
Есть у меня маршрут, обслуживающий статические файлы:

(restas:mount-module static (#:restas.directory-publisher)
  (:url "static")
  (restas.directory-publisher:*directory*
   (asdf:system-relative-pathname '#:gallery #p"static/")
)
)


Я использую его так:
(restas:genurl 'static.route :path "css/jquery.fancybox.css")
И получаю такой результат:
/gal/static/css%2fjquery.fancybox.css

Эта схема работает прекрасно до тех пор, пока браузер не начинает вычислять относительный адрес изображений, которые указаны в .css файлах. По стандарту, он вычисляется относительно стилевого документа, который при таком url'е будет css%2fjquery.fancybox.css, а не jquery.fancybox.css . И хотя css-файл загружается нормально, url картинок получаются не верными.

Я понимаю, что в общем случае необходимо кодирование параметров url. Как можно было бы отключить его в этом случае? Есть ли что-нибудь более элегантное, чем:
(concatenate 'string (restas:genurl 'static.route :path "") "css/jquery.fancybox.css")
?
[#]
Можно попробовать (restas:genurl 'route :path ("sub" "directories" "file.css"))
Menschenkindlein - 08.11.2013 23:18
[#] Ответ на комментарий от Menschenkindlein 08.11.2013 23:18
> Можно попробовать

Именно так и нужно делать. Маршрут route в restas.directory-publisher имеет параметр :path, который wildcard и представляется списком. Для wildcard параметров при генерации url правильно передавать именно список. То, что как-то работает и на простой строке, просто счастливое стечение обстоятельств. 
archimag - 08.11.2013 23:27
[#] Ответ на комментарий от Menschenkindlein 08.11.2013 23:18
quote пропустил перед списком...
Menschenkindlein - 08.11.2013 23:31
[#] Ответ на комментарий от Menschenkindlein 08.11.2013 23:18
Спасибо. В документации это, кажется, не упомянуто
necto - 09.11.2013 18:11
@2009-2013 lisper.ru