При разработке приложения Sinatra для запуска в тонком направлении пути довольно просты.
Теперь, когда я запускаю файл warbled war в tomcat, все изменилось. Корень теперь еще на один уровень глубины (/warFileName/
), и относительные адреса относятся к маршруту / URL, поэтому, если у меня есть два маршрута, получите 'dostuff' и получите 'subdir / dostuff', получая любые файлы (js, css, изображения) отличается между этими двумя (первое, что я могу просто сделать 'js/blah.js'
, и оно будет правильно выглядеть в public/js
, второе - в subdir/js
и потерпит неудачу). И я больше не могу делать корневую косую черту (/js
) из-за того, что tomcat толкает вещи на уровень, как я уже говорил (/warFileName/subdir/doStuff
).
Предполагая, что я не хочу жестко кодировать /warFileName/
во всех ссылках на свои изображения / js / css / etc, и я бы предпочел, чтобы мои маршрутизаторы не передавали вещи на хамл, как @root = ".."
или @root = ""
в зависимости от если мы находимся в псевдо-подкаталоге или нет, есть ли элегантный способ справиться с этим?